Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Unable to get counter to reset

by roboticus (Chancellor)
on Jan 13, 2015 at 17:11 UTC ( [id://1113111]=note: print w/replies, xml ) Need Help??


in reply to Unable to get counter to reset

morcadiss:

As you guessed, using a hash or array can help out. Here's how I'd do it with a hash. The hash key will be the filename I want to write to:

my %Files; sub open_file { my $file_name = shift; die "$file_name is already open" if exists $Files{$file_name}; open my $FH, '>', $file_name or die "$file_name open error: $!"; $Files{$file_name} = { COUNT=>0, FH=>$FH }; } sub file_handle { my $file_name = shift; die "$file_name: Hasn't been opened yet" if ! exists $Files{$file_ +name}; return $Files{$file_name}{FH}; } sub file_counter { my $file_name = shift; die "$file_name: Hasn't been opened yet" if ! exists $Files{$file_ +name}; return $Files{$file_name}{COUNT}; } sub write_to_file { my $file_name = shift; my @stuff_to_print = @_; die "$file_name: Hasn't been opened yet" if ! exists $Files{$file_ +name}; my $file = $Files{$file_name}; my $FH = $file->{FH}; print $FH @stuff_to_print; ++$file->{COUNT}; } for my $file ('foo', 'bar', 'baz') { open_file($file); } for my $file ('foo', 'foo', 'baz', 'foo', 'bar') { my $count = file_counter($file); write_to_file($file, "Count is $count\n"); }

Note: untested, yadda yadda...

...roboticus

When your only tool is a hammer, all problems look like your thumb.

Replies are listed 'Best First'.
Re^2: Unable to get counter to reset
by morcadiss (Initiate) on Jan 13, 2015 at 17:19 UTC
    Thank you!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2024-04-19 15:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found