LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: John W. Krahn Date: Tue May 13 05:32:48 2008 Subject: Re: want to assign default value to variable I assign from split
Jenda Krynicky wrote: > From: Richard Lee <rich.japh@gmail.com> >> >> I was doing (after the while loop) >> >> $file |= 'default' >> $file2 |= 'default2' >> $file3 |= 'default3' >> >> but I stopped and thought this cannot be so repetitious >> >> so I didn't want to but tried( I didn't want to put them in array since >> I need to use individual named variable later) >> >> while (<FILE>) { >> my @array = (split( /\|/, $_))[3,4,6,7,12,40,41,42,43,46,56,64] >> } >> for (@array) { >> $_ |= 'default'; >> } >> >> but is that the best way to do this? > > So are the defaults the same or not? > > If they are you can do something like > > while (<FILE>) { > > my($file1,$file2,$file3,$file4,$file5,$file6,$file10,$file25,$file27) > = (split( /\|/, $_))[3,4,6,7,12,40,41,42,43,46,56,64]; > > for($file1,$file2,$file3,$file4,$file5,$file6,$file10,$file25,$file27) > { > $_ |= 'default'; > } > } > > Actually this seems to work as well: > > while (<FILE>) { > $_ |= 'default' for > (my($file1,$file2,$file3,$file4,$file5,$file6,$file10,$file25,$file27) > = (split( /\|/, $_))[3,4,6,7,12,40,41,42,43,46,56,64]); > # and some code using $file1, ... > } > > If you want a different default for each field, you can't IMHO do > better than the original code. Please note that |= does not do what you appear to think it does, you really want to use ||= instead. $ perl -e' use Data::Dumper; $Data::Dumper::Useqq = 1; $x = "one"; print Dumper $x; $x |= "two"; print Dumper $x; ' $VAR1 = "one"; $VAR1 = "\177\177o"; John -- Perl isn't a toolbox, but a small machine shop where you can special-order certain sorts of tools at low cost and in short order. -- Larry Wall
| Navigate in group perl.beginners at sever nntp.perl.org | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |