Ignoring, for the moment, your misuse of "system" (please do follow Corion's advice - it's dead on target), you could do it this way (a.k.a. "crude but effective"):
#!/usr/bin/perl -w use strict; # This is file1 my $error = 10; print "$error.\n";
#!/usr/bin/perl -w use strict; # This is file2 print "Before: "; # Run the first script do "file1"; my $new_error_value = 20; @ARGV = "file1"; { local $^I = ""; # Enable in-place editing while (<>){ s/(\$error\s*=\s*)\d+/$1$new_error_value/; print; } } print "After: "; # Run the first script do "file1";
Or, if you really insist on using "system":
#!/usr/bin/perl -w use strict; # This is file2 print "Before: "; # Run the first script do "file1"; system "/usr/bin/perl", qw{-i -wpe s/(\$error\s*=\s*)\d+/${1}20/ file1 +}; print "After: "; # Run the first script do "file1";
Update: Tweaked regex to remove unnecessary parens (just because I'm picky like that. ;)
In reply to Re: Global Variable
by oko1
in thread Global Variable
by abithajames
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |