"Kleines" Problem mit eval

07/07/2011 - 02:11 von Thomas Schweikle | Report spam
Hi!


Ich versuche gerade folgendes zum Laufen zu bringen:

#!/usr/bin/perl

use strict;
use warnings;

my $xn = '$n.example.com";
my $n = 'host';

my $hn = eval $xn;

print "$hn"

Mehr als die Meldung: "Use of uninitialized value $hn in
concatenation (.) or string at xx line 11." gibt es aber nicht.
Wieso liefert "eval" nicht "host.example.com"???

Thomas
 

Lesen sie die antworten

#1 Bjoern Hoehrmann
07/07/2011 - 02:48 | Warnen spam
* Thomas Schweikle wrote in de.comp.lang.perl.misc:
Ich versuche gerade folgendes zum Laufen zu bringen:

#!/usr/bin/perl

use strict;
use warnings;

my $xn = '$n.example.com";
my $n = 'host';

my $hn = eval $xn;

print "$hn"

Mehr als die Meldung: "Use of uninitialized value $hn in
concatenation (.) or string at xx line 11." gibt es aber nicht.
Wieso liefert "eval" nicht "host.example.com"???



Du kannst überprüfen ob $hn definiert ist, und wenn nicht, dann mag es
sein, dass eval fehl schlug; dann sollte $@ definiert sein und dort eine
Fehlermeldung drinstehen. In deinem Falle sowas wie

Bareword "example" not allowed while "strict subs" in use at ...
Bareword "com" not allowed while "strict subs" in use at ...

Hier beschwert sich Perl darüber, dass 'example' und 'com' nicht in An-
führungszeichen (oder dergleichen) stehen. Überlege dir was dieses tut:

sub example { return 'EXAMPLE' }
sub com { return 'COM' }
my $n = 'host';
print $n.example.com;

Wenn du uns erklàrst, welches Problem du eigentlich lösen möchtest, dann
können wir dir Alternativen vorschlagen.
Björn Höhrmann · mailto: · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

Ähnliche fragen