Perl noob.Perl: renvoie un tableau du sous-programme .pm
Je n'arrive pas à comprendre comment renvoyer une valeur de tableau à partir d'un sous-programme dans un fichier .pm.
fichier .pl a les éléments suivants:
print "Enter your first and last name.\n";
chomp(my $fullname = <STDIN>); #input is 'testing this' all lower case
Jhusbands::Loginpass->check_name($fullname);
print "$fullname\n";
.pm comprend la sous-routine suivante:
sub check_name {
my $class = shift;
if ($_[0] =~ /^\w+\s+\w+$/) {
@_ = split(/ /, $_[0]);
foreach $_ (@_) {
$_ = ucfirst lc for @_;
@_ = join(" ", @_);
print Dumper(@_) . "\n";
return @_;
}
}
}
Je prends le nom, la vérification pour seulement le premier et le dernier (je vais obtenir à d'autres déclarations plus tard), en le divisant, en corrigeant le cas, et en rejoignant à nouveau. Le tableau final est affiché comme:
$VAR1 = 'Testing This';
Donc, il semble fonctionner jusqu'à présent. Cependant, le vale de retour pour fullname $ dans le fichier .pl affiche le minuscules:
testing this
Pourquoi est-il ne prend pas la variable corrigée en majuscules qui affiche tombereau comme la dernière itération de tableau?
Vous supprimez la valeur de retour dans .pl. Vous devez attribuer à quelque chose. – toolic
vous revenez un de votre sous mais ne le stockez nulle part. –
Aussi, que 'foreach $ _ (@_) {...}' devrait être remplacé par juste '...'. – ikegami