$"=q;grep;;$,=q"grep";for(`find . -name ".saves*~"`){s;$/;;;/(.*-(\d+)-.*)$/; $_=["ps -e -o pid | "," $2 | "," -v "," "];`@$_`?{print"+ $1"}:{print"- $1"}&&`r m $1`; print$\;} #### $"=q; grep;;$,=q"grep"; for(`find . -name ".saves*~"`){ s;$/;;; /(.*-(\d+)-.*)$/; $_=["ps -e -o pid | "," $2 | "," -v "," "]; `@$_` ? {print"+ $1"} : {print"- $1"} && `rm $1`; print $\; } #### 1: $"=q; 2: 3: grep;;$,=q"grep"; 4: 5: for(`find . -name ".saves*~"`){ 6: s;$/;;; 7: /(.*-(\d+)-.*)$/; 8: $_=["ps -e -o pid | "," $2 | "," -v "," "]; 9: `@$_` ? {print"+ $1"} : {print"- $1"} && `rm $1`; 10: print $\; 11: } #### perl -e '@a = qw (a bc def); print "before: @a\n"; $"=q; print "after: @a\n";' Output: before: a bc def #### perl -MO=Deparse -e '@a = qw (a bc def); print "before: @a\n"; $"=q; print "after: @a\n";' Output: @a = ('a', 'bc', 'def'); # ok, I agree print "before: @a\n"; # yep, still with ya $" = ' print "after: @a\\n"'; # whoa, this is unexpected -e syntax OK # good news, I guess #### $"=q;grep;; $,=q"grep"; #### $" = 'grep'; $, = 'grep'; #### 1: $"= 'grep' ; 2: $,= 'grep' ; 3: 4: for(`find . -name ".saves*~"`){ 5: s;$/;;; 6: /(.*-(\d+)-.*)$/; 7: $_=["ps -e -o pid | "," $2 | "," -v "," "]; 8: `@$_` ? {print"+ $1"} : {print"- $1"} && `rm $1`; 9: print $\; 10: } #### / # start of pattern match ( # begin storing into $1 .* # store any number of any character... - # ...followed by a hyphen... ( # begin storing into $2 \d # ...any digit... + # ...as many as we can grab... ) # stop storing into $2 - # ...followed by another hyphen .* # ...followed by any number of any character... ) # stop storing into $2 $ # end of the line, bub /x; # / to terminate regex, x to allow comments #### @command = "ps -e -o pid | grep $2 | grep -v grep "; $ar_command = \@command; #### perl -e '$foo = 0; $foo==0 ? print "foo is zero" : print "foo is non-zero";' Output: foo is zero #### $foo = 0; if ( $foo == 0 ) { print "foo is zero" ; } else { print "foo is non-zero" ; } #### if ( `@$_` ) { print "+ $1"; } else { print "- $1" && `rm $1`; } #### my $owner_is_still_running = `@$_`; # search for a specific $pid if ( $owner_is_still_running ) { print "$owner_is_still_running, keeping $1"; # found $pid, keep tempfile } else { print "removing $1"; # didn't find $pid `rm $1`; # remove $pid's tempfile } #### #!/usr/bin/perl use strict; use warnings; # find files that match the naming convention my @files = `find . -name ".saves*~"`; foreach ( @files ) { chomp; # hold onto filename, and extract creator's pid / # start of pattern match ( # begin storing into $1 .* # store any number of any character... - # ...followed by a hyphen... ( # begin storing into $2 \d # ...any digit... + # ...as many as we can grab... ) # stop storing into $2 - # ...followed by another hyphen .* # ...followed by any number of any character... ) # stop storing into $2 $ # end of the line, bub /x; # / to terminate regex, x to allow comments my ( $filename, $creator_pid ) = ( $1, $2 ); # Check process stack for the creator's pid, storing command result my $command = "ps -e -o pid | grep $creator_pid | grep -v grep"; my $command_result = `$command`; # if the command result is positive, leave $filename alone... # ... otherwise, remove $filename if ( $command_result ) { print "+ $filename\n"; } else { print "- $filename\n"; `rm $filename`; } }