Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^2: Cleaner way of looping through a file and stripping only certain lines?

by texasperl (Sexton)
on Dec 08, 2006 at 18:05 UTC ( #588662=note: print w/ replies, xml ) Need Help??


in reply to Re: Cleaner way of looping through a file and stripping only certain lines?
in thread Cleaner way of looping through a file and stripping only certain lines?

This is some great insight. I especially gleaned a lot of wisdom from these bits:

  • not using "" around the variable in open
  • operator precedence in the open statement
  • using STDIN and STDOUT instead of named filehandles
Thank you very much for your excellent insight. Hopefully someone else can also learn from this post (that's why I post things like this.)


Comment on Re^2: Cleaner way of looping through a file and stripping only certain lines?
Replies are listed 'Best First'.
Re^3: Cleaner way of looping through a file and stripping only certain lines?
by revdiablo (Prior) on Dec 08, 2006 at 18:17 UTC
    operator precedence in the open statement

    Not trying to kick you while you're down (honestly! =]), and it could just be a case of me misreading your sentence, but the operator precedence ikegami explained is not limited to the open statement -- it's part of the perl parser in general.

    Update: Ah, misread the original sentence indeed. Sorry 'bout that. No harm intended.

      Ha! It was a case of misreading the sentence. All the same, thanks for the reminder. Now...the task of fixing my short-circuiting/error messages in other scripts awaits me. =]

        Similarly, not using "" around the variables is not specific to open. "$var" creates a new variable which is the string representation of the specified variable. It's almost never needed, and it's often undesireable.

        In this case, your variable is already a string, and if it wasn't. If it wasn't, it would get converted to a string automatically.

        I can think of two uses for "$var":

        • When using a global variable as an argument. (For example, log_error("$@") is safer than log_error($@).)

        • When you want to explicitely specifiy the context for an overloaded object. (For example, 4 + $obj and 4 + "$obj" could have different results.) You'd only use this when you know you have an overloaded object and you know you want the string representation in a numerical, boolean or list context (i.e. never).

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2015-07-28 04:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (252 votes), past polls