Slide 11
Slide 11 text
|
# ls -al | me
pipe my $read, my $write;
my $pid = fork // die $!;
if ($pid == 0) {
# ls -al
close $read;
open STDOUT, ">&", $write;
exec "ls", "-al";
exit 255;
} else {
# me
close $write;
my @got = <$read>;
warn "got: $_" for @got;
waitpid $pid, 0;
close $read;
}
# me | wc -l
pipe my $read, my $write;
my $pid = fork // die $!;
if ($pid == 0) {
# wc -l
close $write;
open STDIN, "<&", $read;
exec "wc", "-l";
exit 255;
} else {
# me
close $read;
say {$write} "line1";
say {$write} "line2";
close $write;
waitpid $pid, 0;
}