PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datentyp ermitteln Perl



Romanday
05-06-2006, 16:24
Ich möchte ein mehrdimensionales (nummerisch+ assoziativ gemixt) Array
auslesen. Gibt es eine Funktion mit der ich den Datentyp ARRAY
ermitteln kann (+ andere Datentypen)? (z. B. wie is_array() in PHP)

michael.sprick
05-06-2006, 17:24
Hi,

eine Funktion analog der genannten php Funktion gibt es afaik nicht.
Ich meine aber mal gelesen zu haben, dass man Datentypen mit Class::Meta::irgendwas validieren und erzeugen kann. Evtl. kannst Du die Klassen für Deine Zwecke benutzen...

Ansonsten reicht es vielleicht schon so:


#!/usr/bin/perl

use strict;
use warnings;

my @Array = (
\'skalar',
['element1','element2','element3'],
{'key1' => 'value1','key2' => 'value2'},
sub { print "Hallo Welt"; }
);

for(my $i=0;$i<=$#Array;$i++)
{
my $Type = $Array[$i];
$Type =~ s/\([^\)]*\)//g;
print "\$ARRAY[$i] ist: $Type\n";
}

Romanday
05-06-2006, 18:43
Hi,

eine Funktion analog der genannten php Funktion gibt es afaik nicht.
Ich meine aber mal gelesen zu haben, dass man Datentypen mit Class::Meta::irgendwas validieren und erzeugen kann. Evtl. kannst Du die Klassen für Deine Zwecke benutzen...



Danke, dann muß ich nicht mehr lange suchen.
Also muß ich wieder REGEX rumspielen.
var_dump() && print_r() fehlen mir auch. :mad:

michael.sprick
06-06-2006, 10:25
Hi,






statt var_dump() und print_r nimmst Du in Perl Data::Dumper:

#!/usr/bin/perl
#
use strict;
use warnings;
use Data::Dumper;


my @Array = (
\'skalar',
['element1','element2','element3'],
{'key1' => 'value1','key2' => 'value2'}
);

print Dumper \@Array;


Was man damit noch alles anstellen kann, siehst Du hier:


perldoc Data::Dumper

Romanday
06-06-2006, 10:49
Hi,



statt var_dump() und print_r nimmst Du in Perl Data::Dumper:


Danke, werde ich gleich mal ausprobieren.