I think your script is failing at the defined($line = <INPUT>). So the hash
is not getting populated at all. I think this because your call to open
didn't include a <, as in
open FH, "< your_file" or die $!;
Try adding that to your open call and see if it makes a difference.
>===== Original Message From Nicole Seitz <[EMAIL PROTECTED]> =====
>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]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]