in reply to Re: How to have perl check line length
in thread How to have perl check line length

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";

Replies are listed 'Best First'.
Re^3: How to have perl check line length
by SuicideJunkie (Vicar) on Sep 17, 2013 at 18:14 UTC

    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.

Re^3: How to have perl check line length
by marinersk (Priest) on Sep 17, 2013 at 18:44 UTC
    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.