On Fri, 2008-08-01 at 02:53 -0700, John W. Krahn wrote: > Anirban Adhikary wrote: > > Dear list > > Hello, > > > while I am running the following code I am getting a warning message. the > > code is as follows > > > > 1 use strict; > > 2 use warnings; > > 3 use Cwd 'abs_path'; > > 4 my $dir = "/home/oraoneload_beta/sraywork/beta2.2/OraOneLoadServer"; > > 5 chdir($dir); > > 6 #my $filename="$dir/processinfo.txt"; > > 7 #`ps -U oraoneload_beta -u oraoneload_beta u | grep perl | grep -v grep > >> $filename`; > > 8 open(FH,"ps -U oraoneload_beta -u oraoneload_beta u | grep perl | grep > > -v grep|") or "can't open : $!"; > > 9 #open(FH,"$filename"); > > 10 my @process = <FH>; > > 11 close(FH); > > 12 chomp(@process); > > 13 pop(@process); > > 14 foreach my $el(@process) > > 15 { > > 16 my $cmd =(split /\s+/,$el)[12]; > > 17 my ($a,$b) = split(/\//,$cmd); > > 18 my $path=abs_path($b); > > 20 print $path."\n"; > > 21 } > > 22 > > > > The warning message is as Useless use of string in void context at > > processcheck.pl line 8. But while I am commenting the line 8 and > > uncommenting the the line 6, 7 and 9 and then running this script I am not > > getting any warning message. Where I am making the mistake? > > Your mistake is on line 8 at: > > or "can't open : $!" > > You have to put something like 'die' between 'or' and '"'. > > > Also, you may do better with code like this instead: > > use strict; > use warnings; > use Cwd 'abs_path'; > > my $dir = '/home/oraoneload_beta/sraywork/beta2.2/OraOneLoadServer'; > chdir $dir or die "Cannot chdir to '$dir' $!"; > > open my $FH, '-|', qw/ps -U oraoneload_beta -u oraoneload_beta -o > command/ or die "Cannot open pipe from 'ps' $!"; > > while ( <$FH> ) { > next unless /perl/;
next if /grep/; > chomp; > my $cmd =( split ' ', $_, 3 )[ 2 ]; > my $path = abs_path( ( split /\//, $cmd )[ 1 ] ); > print "$path\n"; > } > > close $FH or warn $! ? "Error closing 'ps' pipe: $!" > : "Exit status $? from 'ps'"; > > __END__ > > > > John > -- > Perl isn't a toolbox, but a small machine shop where you > can special-order certain sorts of tools at low cost and > in short order. -- Larry Wall > -- Just my 0.00000002 million dollars worth, Shawn "Where there's duct tape, there's hope." "Perl is the duct tape of the Internet." Hassan Schroeder, Sun's first webmaster -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/