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+)[",]$/) {
                $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/


Reply via email to