Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^4: header footer

by gupr1980 (Acolyte)
on Mar 05, 2014 at 01:04 UTC ( [id://1077029]=note: print w/replies, xml ) Need Help??


in reply to Re^3: header footer
in thread header footer

So this is the one that i tried and it works. Thanks kenosis and others for taking the time.
#!/usr/bin/perl use strict; use warnings; open FILE1,"input.txt"; open FILE2,">>output.txt"; foreach my $line ( <FILE1> ) { $_= $line; s/^HDR.{47}//; s/\KFTR.{27}//; print FILE2 $_; } close FILE1; close FILE2;
this made the most clarity for me. I am assuming that the entire file doesnt gets stored in the $_ in this approach, correct me if i am wrong. and the file is only getting read one line at a time. This i want to make sure so that it performs well when i actually test with the huge file.

Replies are listed 'Best First'.
Re^5: header footer
by Kenosis (Priest) on Mar 05, 2014 at 01:20 UTC

    Consider the following instead:

    use strict; use warnings; use autodie; open my $FILE1, '<', 'input.txt'; open my $FILE2, '>', 'output.txt'; while (<$FILE1>) { s/^HDR.{47}|FTR.+//; print $FILE2 $_; } close $FILE1; close $FILE2;
    • autodie will trap the file i/o errors (you're not handling these, but you should)
    • Use only lexical (my) file handles
    • Use while to iterate through the file
    • The two substitutions were combined into one

    If FTR marks the footer to the end of the line, you can just use FTR.+ to remove it, since in your example there were only 30 characters left--including FTR. However, it's certainly OK to use FTR.{27}, if you prefer.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (3)
As of 2024-03-29 01:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found