So I added it like below to my script, but it doesn't work. Am I missing something else?
open(NPBXNUM1, ">npbxnum1");
open(MYINPUTFILE, "npbxnum");
while (<MYINPUTFILE>) {
chomp;
$line .= '_' x (4 - length $line);
}
close(MYINPUTFILE);
close(NPBXNUM1);
system "mv npbxnum1 npbxnum";
| [reply] [d/l] |
Replace $line with whatever variable you are storing the line in. (In this case, $_)
Also, you should probably print the modified lines to the output file at some point inside the loop.
PS: use warnings; use strict;, and opens in the form of open my $filehandle, '<', $filename or die "I couldn't open the file. OS says: $!"; will help highlight likely mistakes in your code and illuminate the reasons for any file errors.
| [reply] [d/l] [select] |
You really, really, really should use strict, especially if you are new to Perl. It will save you from asking embarrassing questions.
That is to say, being new to Perl, you might still have to ask:
"What does Global symbol "$line" requires explicit package name mean?"
But that's a much better question than "why didn't that line of code I stuck in my program work?"
#!/usr/bin/perl -w
use strict;
{
open(NPBXNUM1, ">npbxnum1");
open(MYINPUTFILE, "npbxnum");
while (<MYINPUTFILE>) {
chomp;
$line .= '_' x (4 - length $line);
}
close(MYINPUTFILE);
close(NPBXNUM1);
system "mv npbxnum1 npbxnum";
}
exit;
__END__
C:\Steve\Dev\PerlMonks\P-2013-09-17@2038-Use-Strict>usestrict.pl
Global symbol "$line" requires explicit package name at C:\Steve\Dev\P
+erlMonks\P-2013-09-17@2038-Use-Strict\usestrict.pl line 11.
Global symbol "$line" requires explicit package name at C:\Steve\Dev\P
+erlMonks\P-2013-09-17@2038-Use-Strict\usestrict.pl line 11.
Execution of C:\Steve\Dev\PerlMonks\P-2013-09-17@2038-Use-Strict\usest
+rict.pl aborted due to compilation errors.
| [reply] [d/l] |