Am bekommen versuchen, ein Unterprogramm zu machen, die Daten je nach Datentyp ersetzt: das Problem ist, ich nicht den Datentyp des Parameters bekommen, habe ich dies:Perl Parameter Datentyp
sub replace {
my ($search, $replacement, $subject) = @_;
if (ref($search) eq "HASH") {
print "r is a reference to a HASH.\n";
}
elsif (ref($search) eq "SCALAR") {
print "r is a reference to a SCALAR.\n";
}
elsif (ref($search) eq "ARRAY") {
print "r is a reference to a ARRAY.\n";
}
}
my $str = "Foo";
my @arr = ("Foo");
replace($str);
replace(@arr);
Aber keiner arbeitet. bin wirklich neu in perl
Gibt es einen anderen Weg als das Hinzufügen? Wie kann ich es innerhalb der Subroutine tun? –
@ChrysUgwu nein, da Funktionsparameter als eine große Liste zu perlieren scheinen. Sie können also keine Liste von Skalaren, Arrays oder Hashs unterscheiden, nachdem die Funktion sie bereits akzeptiert hat. – stevieb