perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




11.02.2012 / 07:21

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragUse of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
weiss jemand von euch warum bekomme ich diese Warning? :(

Use of uninitialized value in join at Install_Platform.pl line 318.

der Code sieht so aus:
............
&Subroutine(@tempArray);
#(@tempArray=mehrdimensionale Array)
sub Subroutine
{
my(@arr) = @_;
&free_space(@arr);
print "S T A R T\n";
print "@{$_}\n" for @arr;
print "E N D\n";
........
}

Datum: 03.04.2007-16:20

Beitragre: Use of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
niemand kann mir hier warum dise warning auftritt. wo seid sind die Experten hier?
ich danke euch trozdem für eure Hilfe.

Datum: 04.04.2007-14:26

Beitragre: Use of uninitialized value in join at Install_Platform.pl lin
Seitenanfang
Etwas mehr Infos wären nicht schlecht. Hast Du Dir mal angeschaut was im Array drinsteht? (Stichwort: Data::Dumper)

Welche Zeile ist Zeile 31??

Datum: 04.04.2007-16:13

Beitragre: Use of uninitialized value in join at Install_Platform.pl lin
Seitenanfang
Das hier steht drin:

HASH(0x2a33174) Run C:\totalcmd\totalcmd.exe 1
HASH(0x2a33270) Run C:\Win16App\SV-View\VDOqView.exe 2
HASH(0x2a33348) Run C:\totalcmd\totalcmd.exe 3
HASH(0x2a32198) Run C:\totalcmd\totalcmd.exe 4
HASH(0x2a45754) Run C:\totalcmd\totalcmd.exe 5

und keine Data::Dumper im code sondern: einfach das Array mit einer for schleife aufgefühlt( mehrdimensionale Array).

ist es das was du meinst?
brauche Ihre Hilfe ;-(

Datum: 05.04.2007-09:57

Beitragre: Use of uninitialized value in join at Install_Platform.pl lin
Seitenanfang
Bau mal folgendes an den Anfang deines Skriptes mit ein:
use Data::Dumper;

Und dieses in deine Subroutine:

sub Subroutine {
my(@arr) = @_;
print Dumper(\@arr);
...

Was bekommst du dann als Ausgabe?

- mike

Datum: 05.04.2007-18:10

Beitragre: Use of uninitialized value in join at Install_Platform.pl lin
Seitenanfang
Mit dem Befehl:print Dumper(\@arr);
kriege ich sowas und das ist fehlerfrei und warningfrei nu finde ich die ausgabe(1) nicht schön.
Mit dem Befehl:print "@{$_}\n" for @arr; bekomme ich die Ausgabe (2) die mir besser gefehlt aber leider mit 1 Warning.
Hier sind die Ausgaben:
(1)
$VAR1 = [
[
{},
'Run',
undef,
undef,
'C:\\totalcmd\\totalcmd.exe',
'1',
undef
],
[
{},
'Run',
undef,
undef,
'C:\\Win16App\\SV-View\\VDOqView.exe',
'2',
undef
],
[
{},
'Run',
undef,
undef,
'C:\\totalcmd\\totalcmd.exe',
'3',
undef
],
[
{},
'Run',
undef,
undef,
'C:\\totalcmd\\totalcmd.exe',
'4',
undef
],
[
{},
'Run',
undef,
undef,
'C:\\totalcmd\\totalcmd.exe',
'5',
undef
]
];
#und keine warning_meldung.

#(2)
HASH(0x2a2e2c8) Run C:\totalcmd\totalcmd.exe 1
HASH(0x2a471a4) Run C:\Win16App\SV-View\VDOqView.exe 2
HASH(0x2a47210) Run C:\totalcmd\totalcmd.exe 3
HASH(0x2a470b4) Run C:\totalcmd\totalcmd.exe 4
HASH(0x2a4700c) Run C:\totalcmd\totalcmd.exe 5
#####
hast du eine Idee woran es liegt wenn nicht dann ist es OK ich werde mir das erste Befehl nehmen und danke für deine Hilfe.

Datum: 10.04.2007-10:23

Beitragre: Use of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
Ganz einfach, eines oder mehrere der Arrays die du mit print ausgibst enthalten einen undefinierten Wert, deshalb erhaelst du eine Warnung.

Man nehme folgendes Codebeispiel


#!/usr/bin/perl

use strict;
use warnings;

my @var = ( 'foo', undef, 'bar' );

print "@var";


Auch hier kommt die Meldung "Use of uninitialized value in join or string at file.pl line 8." obwohl kein join im Code ist, jedoch entspricht die letzte Zeile

print join($", @var);

ist jetzt einer der Werte aus @var undefiniert erhaelt man mit aktivierten 'warnings' eine Warnung.

Datum: 10.04.2007-11:58

Beitragre: Use of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
Ganz einfach, eines oder mehrere der Arrays die du mit print ausgibst enthalten einen undefinierten Wert, deshalb erhaelst du eine Warnung.

Man nehme folgendes Codebeispiel


#!/usr/bin/perl

use strict;
use warnings;

my @var = ( 'foo', undef, 'bar' );

print "@var";


Auch hier kommt die Meldung "Use of uninitialized value in join or string at file.pl line 8." obwohl kein join im Code ist, jedoch entspricht die letzte Zeile

print join($", @var);

ist jetzt einer der Werte aus @var undefiniert erhaelt man mit aktivierten 'warnings' eine Warnung.

Datum: 10.04.2007-11:59

Beitragre: Use of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
Ganz einfach, eines oder mehrere der Arrays die du mit print ausgibst enthalten einen undefinierten Wert, deshalb erhaelst du eine Warnung.

Man nehme folgendes Codebeispiel


#!/usr/bin/perl

use strict;
use warnings;

my @var = ( 'foo', undef, 'bar' );

print "@var";


Auch hier kommt die Meldung "Use of uninitialized value in join or string at file.pl line 8." obwohl kein join im Code ist, jedoch entspricht die letzte Zeile

print join($", @var);

ist jetzt einer der Werte aus @var undefiniert erhaelt man mit aktivierten 'warnings' eine Warnung.

Datum: 10.04.2007-12:01

Beitragre: Use of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
und wie könnte ich diese warning beseitigen?

Datum: 10.04.2007-13:05

Beitragre: Use of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
die Werte in dem Array hole ich mir von einem XMLFile und manschmal ist irgendwo einen undefinierten Element -> undefinierten wert in meinem Array.

diese Warning nerft mich gibt es da eine möglichkeit: diese Warning zu beseitigen oder zu ignorieren damit ich keine Warning dadurch bekomme.??

und danke euch

Datum: 10.04.2007-16:50

Beitragre: Use of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
Man wird die Warnungen los in dem man die Werte auf einen definierten Wert setzt, bevor man sie ausgibt.

Wenn du die XML-Datei mit XML::Simple einliest, dann gibt es eine Option namens 'SuppressEmpty'. Du kannst diese Option auf '' also auf einen Leerstring setzen, dann wird statt einen undefinierten Wert ein Leerstring verwendet. (In der Regel werden statt undef und des Leerstrings ein leerer Hash verwendet.)

http://search.cpan.org/dist/XML-Simple/lib/XML/Simple.pm#___top

Datum: 12.04.2007-20:33

Beitragre: Use of uninitialized value in join at Install_Platform.pl line 31
Seitenanfang
Danke dir für deine Große Hilfe.
du hast meine Frage richtig verstanden und das ist genau was ich brauche.
danke nochmal
;-)

Datum: 13.04.2007-10:19

-






-
-