Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Someone please verify this.

by Zaxo (Archbishop)
on Jul 10, 2007 at 03:58 UTC ( #625758=note: print w/ replies, xml ) Need Help??


in reply to Someone please verify this.

Your C-style for loop runs from zero to minus one, because $#efile refers to the last index of the array @efile, which is created on the spot - empty. Your task will be much simpler if it is written using the idiomatic $_ variable.

#!/usr/bin/perl use warnings; use strict; my $input_file = 'dump.vcd'; open (INPUT, '<', $input_file) or die $!; while (<INPUT>) { s/\$var\w \d+ ([!,\#,\",\$,\%,&]) (\w) \$end/\$var $1 $2/; print; } close INPUT;
That has the benefit that the file is read and processed one line at a time, with no space taken for an array to hold it. I added warnings and strict, which would have told you what was wrong. I also improved open to the 3-arg form and added error checking in case open fails.

I don't believe your character class is exactly what you think it is because of all the commas and escapes. I didn't modify the s/// statement because I didn't know its intent.

After Compline,
Zaxo


Comment on Re: Someone please verify this.
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (11)
As of 2014-12-28 01:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls