You need @months = map uc, @months. On Wed, Jul 27, 2011 at 12:42 PM, Avishalom Shalit <[email protected]>wrote:
> oh, > i did, > > map uc, @months > > that's not it > > -- vish > > > > > > On 27 July 2011 10:25, Gaal Yahas <[email protected]> wrote: > > Normalize case on the months. Either uc @months (say, with map) or $t{lc > $1} > > in the substitution. > > On Wed, Jul 27, 2011 at 12:18 PM, Avishalom Shalit <[email protected]> > > wrote: > >> > >> well, here's another conundrum , > >> $t{$1} > >> $t{"$1"} > >> and event > >> $t{"OCT"} > >> > >> don't work > >> > >> $t gets parsed as a scalar (even with use strict; , (inside > >> "BEGIN{}", am I doing this right? )) > >> to get it to work i had to use $a = \%t, > >> $a->{"OCT"} > >> > >> any insights? > >> (except stop using one-liners?) > >> > >> -- vish > >> > >> > >> > >> > >> > >> On 26 July 2011 19:30, Gaal Yahas <[email protected]> wrote: > >> > Change the substitution to use > >> > $t{"$1"} > >> > > >> > instead of > >> > $t{\1} > >> > In general you should avoid sed-style backreferences in substitutions. > >> > BTW whenever things are acting up in Perl the first thing you should > do > >> > is > >> > turn on strict and warnings. This is the case in one-liners, too. > >> > $ perl -wle 'print oct' > >> > Use of uninitialized value $_ in oct at -e line 1. > >> > 0 > >> > > >> > > >> > On Tue, Jul 26, 2011 at 9:16 PM, Avishalom Shalit < > [email protected]> > >> > wrote: > >> >> > >> >> yes, it was a nasty one, > >> >> > >> >> echo 'a'b'c' > >> >> abc > >> >> > >> >> > >> >> or more to the point > >> >> > >> >> echo 'a a a' b b b 'c c c' > >> >> a a a b b b c c c > >> >> > >> >> > >> >> --- > >> >> also thanks > >> >> qw is indeed the good solution, > >> >> > >> >> --- > >> >> > >> >> but while I am on the air, > >> >> one more question, > >> >> > >> >> this was part of a preprocessing script to change dates into a nicer > >> >> numerical format (quicker on large files than handling text in > matlab) > >> >> > >> >> inside the loop i had > >> >> s/(?<=X)(...)(?=X)/$t{\1}/e > >> >> > >> >> but that doesn't work > >> >> it gives > >> >> SCALAR(0x105354f8) > >> >> after wasting too many minutes, i fell back on matlab, > >> >> > >> >> > >> >> but let me leave this open > >> >> how could i get this to work, > >> >> (or conversely what would you do to change 11-JUN-2011 to 11-6-2011 > >> >> etc. ) > >> >> > >> >> -- vish > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> On 26 July 2011 19:05, Gaal Yahas <[email protected]> wrote: > >> >> > Sorry, I meant the *single* quotes never reached perl. > >> >> > > >> >> > On Tue, Jul 26, 2011 at 9:04 PM, Gaal Yahas <[email protected]> > wrote: > >> >> >> > >> >> >> The double quotes never reached perl. In both cases, you are > >> >> >> protecting > >> >> >> your oneliner from your shell with single quotes, so when you > >> >> >> reached > >> >> >> 'jan', > >> >> >> the "first" delimiter around that actually stopped shellquoting. > >> >> >> To get around this kind of thing use Perl's flexible quote > >> >> >> operators. > >> >> >> Eg., > >> >> >> perl -MData::Dumper -e '@months = qw(jan feb mar apr ....); > >> >> >> ...and > >> >> >> so > >> >> >> on' > >> >> >> > >> >> >> On Tue, Jul 26, 2011 at 8:47 PM, Avishalom Shalit > >> >> >> <[email protected]> > >> >> >> wrote: > >> >> >>> > >> >> >>> the difference is the double quotes in october. > >> >> >>> > >> >> >>> > >> >> >>> ----- > >> >> >>> > >> >> >>> > >> >> >>> $ perl -MData::Dumper -e > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > '@months=('jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec');@t{@months > }=1..12;print > >> >> >>> Dumper(\%t)' > >> >> >>> $VAR1 = { > >> >> >>> 'feb' => 2, > >> >> >>> 'may' => 5, > >> >> >>> 'mar' => 3, > >> >> >>> 'dec' => 12, > >> >> >>> 'jan' => 1, > >> >> >>> 'aug' => 8, > >> >> >>> 'sep' => 9, > >> >> >>> '0' => 10, > >> >> >>> 'jun' => 6, > >> >> >>> 'nov' => 11, > >> >> >>> 'apr' => 4, > >> >> >>> 'jul' => 7 > >> >> >>> }; > >> >> >>> > >> >> >>> $ perl -MData::Dumper -e > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > '@months=('jan','feb','mar','apr','may','jun','jul','aug','sep',"oct",'nov','dec');@t{@months > }=1..12;print > >> >> >>> Dumper(\%t)' > >> >> >>> $VAR1 = { > >> >> >>> 'feb' => 2, > >> >> >>> 'may' => 5, > >> >> >>> 'mar' => 3, > >> >> >>> 'dec' => 12, > >> >> >>> 'jan' => 1, > >> >> >>> 'aug' => 8, > >> >> >>> 'sep' => 9, > >> >> >>> 'jun' => 6, > >> >> >>> 'nov' => 11, > >> >> >>> 'apr' => 4, > >> >> >>> 'oct' => 10, > >> >> >>> 'jul' => 7 > >> >> >>> }; > >> >> >>> > >> >> >>> > >> >> >>> -- vish > >> >> >>> _______________________________________________ > >> >> >>> Perl mailing list > >> >> >>> [email protected] > >> >> >>> http://mail.perl.org.il/mailman/listinfo/perl > >> >> >> > >> >> >> > >> >> >> > >> >> >> -- > >> >> >> Gaal Yahas <[email protected]> > >> >> >> http://gaal.livejournal.com/ > >> >> > > >> >> > > >> >> > > >> >> > -- > >> >> > Gaal Yahas <[email protected]> > >> >> > http://gaal.livejournal.com/ > >> >> > > >> >> > _______________________________________________ > >> >> > Perl mailing list > >> >> > [email protected] > >> >> > http://mail.perl.org.il/mailman/listinfo/perl > >> >> > > >> >> _______________________________________________ > >> >> Perl mailing list > >> >> [email protected] > >> >> http://mail.perl.org.il/mailman/listinfo/perl > >> > > >> > > >> > -- > >> > Gaal Yahas <[email protected]> > >> > http://gaal.livejournal.com/ > >> > > >> > _______________________________________________ > >> > Perl mailing list > >> > [email protected] > >> > http://mail.perl.org.il/mailman/listinfo/perl > >> > > >> _______________________________________________ > >> Perl mailing list > >> [email protected] > >> http://mail.perl.org.il/mailman/listinfo/perl > > > > > > -- > > Gaal Yahas <[email protected]> > > http://gaal.livejournal.com/ > > > > _______________________________________________ > > Perl mailing list > > [email protected] > > http://mail.perl.org.il/mailman/listinfo/perl > > > _______________________________________________ > Perl mailing list > [email protected] > http://mail.perl.org.il/mailman/listinfo/perl > -- Gaal Yahas <[email protected]> http://gaal.livejournal.com/
_______________________________________________ Perl mailing list [email protected] http://mail.perl.org.il/mailman/listinfo/perl
