i did
@t{map uc,@months}=1..12;
took care of that
(and tested with
perl -MData::Dumper
...
print Dumper(\%t);
...
case isn't the case
-- vish
On 27 July 2011 11:25, Gaal Yahas <[email protected]> wrote:
> 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
>
_______________________________________________
Perl mailing list
[email protected]
http://mail.perl.org.il/mailman/listinfo/perl