http://www.perlmonks.org?node_id=356103


in reply to format declaration in a class

Declare your format variables with either vars or our and then within the loop use local e.g
use vars qw($sku, $description, $price, $qty); foreach my $item (@items) { local($sku, $description, $price, $qty) = @$item; write(PURCHASEORDER); }
Or you could fully qualify your variables in your format and localize the appropriate variables i.e
use strict; format STDOUT = @<<<<<<< $::foo . local $::foo = 'a string'; write STDOUT; __output__ a string
Or you can declare the lexicals before the format, if that's feasible. See. perlform for more info.
HTH

_________
broquaint

update: added second to last sentence and finished the incomplete middle sentence