On 18 Feb, 2012, at 23:11, Shawn H Corey <shawnhco...@gmail.com> wrote:

> On 12-02-18 09:42 AM, lina wrote:
>> Hi,
>> 
>> Sorry to open a new thread,
>> 
>> Use of uninitialized value within %dict in concatenation (.) or string
>> at ./translate.pl line 21,<$fh>  line 128.
>> 
>> Here is the whole code (based on the guide form all of you):
>> 
>> #!/usr/bin/perl
>> 
>> use warnings;
>> use strict;
>> 
>> my $file = "dm_proAB.xpm";
>> 
>> open my $fh, "<", $file or die "could not open $file: $!\n";
>> 
>> my %dict;
>> 
>> while ( my $xpm_file =<$fh>  ){
>> 
>>    if ($xpm_file =~ m/([A-Za-z]).+"([0-9.]+)/) {
>>        $dict{$1} = $2;
>>    }
>>    
>>    elsif ( $xpm_file =~ /^"(\S+)[",]$/) {
Are there some possibilities that something can be done for the part [",]?

Make it recognize both end with " or ",

Thanks,

>>        $xpm_file =~ s/(.)/$dict{$1} /g;
> 
> $dict{ q{"} } does not exists, therefore you get a concatenation error. Try:
> 
>    $xpm_file =~ s/(.)/exists( $dict{$1} ) ? "$dict{$1} " : '' /eg;
> 
>>        print $xpm_file;
>>    }
>> }
>> 
>> here is a brief part of the "dm_proAB.xpm"
>> (The full version I uploaded to:
>> https://docs.google.com/open?id=0B93SVRfpVVg3NWIwZDFiNTAtMmY1MS00YTg2LTg5NjAtZTlkZjQyOWVlNzM5
>> 
>> "W  c #6F6F6F " /* "0.846" */,
>> "X  c #696969 " /* "0.885" */,
>> "Y  c #626262 " /* "0.923" */,
>> "Z  c #5C5C5C " /* "0.962" */,
>> "a  c #555555 " /* "1" */,
>> "b  c #4E4E4E " /* "1.04" */,
>> "c  c #484848 " /* "1.08" */,
>> "d  c #414141 " /* "1.12" */,
>> "abcdbacd",
>> "bcdacbXX"
>> 
>> The output is:
>> 
>> 
>> Use of uninitialized value within %dict in concatenation (.) or string
>> at ./translate.pl line 21,<$fh>  line 138.
>> Use of uninitialized value within %dict in concatenation (.) or string
>> at ./translate.pl line 21,<$fh>  line 138.
>>  0 0.115 0.346 0.615 0.923 1.15 1.5 1.5 1.5 1.5 1.5 1.5 1.46 1.19 1.5
>> 1.5 1.5 1.5 1.15 1.15 0.885 0.538 0.5 0.731 0.846 0.731 0.808 1.19
>> 1.31 1.5 1.5 1.5 1.5 1.5 1.5 1.46 1.27 1 0.731 0.692 0.769 1 1.5 1.5
>> 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5
>> 1.5 1.5 1.27 1.12 0.923 0.731 0.538 0.462 0.808 1.12 1.35 1.5 1.5 1.5
>> 1.5 1.5 1.35 1.31 1.35 1.35 1.5 1.5 1.5
>> 
>> I don't understand the message well even I can do a basic guess,
>> 
>> Thanks,
>> 
> 
> 
> -- 
> Just my 0.00000002 million dollars worth,
>  Shawn
> 
> Programming is as much about organization and communication
> as it is about coding.
> 
> It's Mutual Aid, not fierce competition, that's the dominate
> force of evolution.  Of course, anyone who has worked in
> open source already knows this.
> 
> -- 
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
> 
> 

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to