Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: unwanted ARGV in subroutine

by choroba (Chancellor)
on Oct 29, 2012 at 21:48 UTC ( #1001428=note: print w/ replies, xml ) Need Help??

in reply to unwanted ARGV in subroutine

my $text = do { local( @ARGV, $/ ) = $infile ; <> } ;
This should locally change @ARGV to contain $infile and load the whole file into $text. Maybe the file is huge and you have just to wait a bit?
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Comment on Re: unwanted ARGV in subroutine
Download Code
Replies are listed 'Best First'.
Re^2: unwanted ARGV in subroutine
by runrig (Abbot) on Oct 29, 2012 at 22:19 UTC
    And if the file is huge, the OP shouldn't be loading it into memory, and should write to a temp file, and then rename it at the end.

      Hi rizzler

      Try this

      sub addheader{ my($infile,$header)=@_; open(FILE, "$infile"); my $text=do {local $/; <FILE>}; close FILE; open(FILE,">$infile"); print FILE $header; print FILE $text; close FILE; }
        Please don't try that :) it doesn't use error checking ... If you want to copy a file use File::Copy, for moving File::Move

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2016-02-12 22:56 GMT
Find Nodes?
    Voting Booth?

    How many photographs, souvenirs, artworks, trophies or other decorative objects are displayed in your home?

    Results (415 votes), past polls