> cat tst: > > #!/usr/local/bin/perl > > use strict; > use warnings; > > my $cmd = 'ls /'; > > open my $ch, '-|', "$cmd" or die "Can't open $cmd: $!"; > > while ($ch) { > print; > }
I believe you meant: while (<$ch>) HTH, Ken On Sun, Nov 2, 2014 at 5:22 PM, Harry Putnam <rea...@newsguy.com> wrote: > Intermittent programming can lead to brain bleed off. > > In the real script the command is something only found on solaris or > any other zfs filesystem so I just used the first simple command I > could think of. But the aim is to use the output of a command to > perform a string match. I left that out too, because even when > reduced to its most basic code `tst' still fails in the same way. > > This little example below prints this error .. forever. > > Use of uninitialized value $_ in print at ./tst line 11. > > My first impulse was that I had the `dash' with the pipe operator on > the wrong side... but changing it does the same thing. > > What is wrong with this example: > > cat tst: > > #!/usr/local/bin/perl > > use strict; > use warnings; > > my $cmd = 'ls /'; > > open my $ch, '-|', "$cmd" or die "Can't open $cmd: $!"; > > while ($ch) { > print; > } > > > > -- > To unsubscribe, e-mail: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > >