Hi there!
I'm very new to Perl and just don't understand an error message I got.Hope you
can help me.
Now, the file I'm working with contains the following data:
;Structural Safety;Elsevier SD;;;
;Structural Safety (95 ... );ZB-HP;Elsevier;nur online (HGF);
;Subsurface sensing technologies and applications;ZB-HP;KluwerOnline;HGF;
;Superlattices and Microstructures _(96 ... );ZB-HP;Academic;nur online;
And here's the little script I've written so far:
--------------------------------------------------------------------------------
1 #!/usr/bin/perl -w
2 use strict;
3 my $line;
4 my %titles;
5 my $title;
6 my $key;
7 my $value;
8
9 open INPUT , "test"
10 or die "Could not open file: $! ";
11
12 while (defined($line = <INPUT>)) {
13 if ($line =~/^;([^;]+)\s?;Elsevier (SD);/) {
14 #print "$1\t$2\n\n";
15 $titles{$1}= $2;
16 }
17 elsif ($line =~/^;([^\(]+)\s?[^\)]+\)\s?;(ZB-HP);Elsevier;/ ){
18 #print "$1\t$2\n\n";
19 $title = $1;
20 $title =~ s/\s$//;
21 $titles{$title}= $2;
22 }
23 }
24 while ( ($key, $value) = each %titles) {
25 print "$key => $value\n";
26 }
--------------------------------------------------------------------------------
The only lines of interest in the working file are those containing the
strings
";Elsevier SD;" and ";ZB-HP;Elsevier;" (see regexes in
l.13
and l.17)
Key - value pairs like
Structural Safety => SD
are to be stored in a hash.
At first, my programm did not contain line 20.
Therefore, %titles had these elements:
Structural Safety => SD
Structural Safety => ZB-HP
As keys of a hash are unique strings, I noticed that there is a whitespace
character at the end
of the string which $1( see regex l.17) holds.That's why I inserted l.20.The
two strings
should now be exactly the same and the hash should have only one element:
Structural Safety => ZB-HP
Instead, I get the following error output:
Use of uninitialized value in concatenation (.) or string at test.pl line 25,
<INPUT> line 4.
Can someone tell me why?I can't see the problem.
Many thanx in advance!
Nicole
--
Was immer du tun kannst oder ertr�umst zu k�nnen, beginne es.
K�hnheit besitzt Genie, Macht und magische Kraft. Beginne es jetzt.
(Johann Wolfgang Goethe)
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]