in reply to Re^2: Strings with @
in thread Strings with @

i guess we're moving away from the OP here, but demerphq, i'm intrigued with your hatred of global filehandles and i think i like this solution ( open my $in, "file") - can you list some more benefits to this, and maybe disadvantages, that i may be overlooking?

It's not what you look like, when you're doin' what you’re doin'.
It's what you’re doin' when you’re doin' what you look like you’re doin'!
     - Charles Wright & the Watts 103rd Street Rhythm Band

Replies are listed 'Best First'.
Re^4: Strings with @
by demerphq (Chancellor) on Mar 10, 2006 at 08:51 UTC

    Lexical filehandles behave like any other reference and they are easily passed around between subroutines (no \*glob stuff). They also have the advantage that they self close the file when they go out of scope. So, you dont have to worry about two parts of your code clobbering each other by using the same global filehandle, you get autoclose behavior when the file goes out of scope (globals if not closed explicitly may not be closed until process termination), and you get a more consistant behaviour/use of the variable. The latter point is important as it means you cant write a bunch of subs that all read from the same filehandle unless those subs also accept the filehandle as an argument. This is a good thing as it clarifies the data flow of your code.

    I know of no disadvantages of using lexical filehandles. IMO its pretty well always better to use them over global filehandles.

    ---
    $world=~s/war/peace/g