Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: How to have perl check line length

by SuicideJunkie (Vicar)
on Sep 17, 2013 at 17:25 UTC ( [id://1054494]=note: print w/replies, xml ) Need Help??


in reply to How to have perl check line length

$line .= '_' x (4 - length $line);

Be sure to chomp off the end of line characters first.

Replies are listed 'Best First'.
Re^2: How to have perl check line length
by ddrew78 (Beadle) on Sep 17, 2013 at 17:56 UTC
    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";

      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.

      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1054494]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2024-04-18 03:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found