Erstens ist es nicht klar, ob Sie Ihre Befehle in einem Array oder einem Hash speichern möchten. Die beiden Datenstrukturen sind in Perl unterschiedlich. In Ihrem Code speichern Sie die Befehle in einem Array (@Scripts
), aber Sie initialisieren dieses Array mit einer sehr Hash-ähnlichen Syntax ((key => value, ...)
). Deine Syntax wird funktionieren, aber sie tut nicht, was (ich denke!) Du machen willst. Sie enden auch mit Ihren Schlüsseln im Array, und es ist schwer, sie zu überspringen.
Wenn Sie Ihre Befehle in einem Array speichern möchten, dann tun Sie etwas wie folgt aus:
my @Scripts = (
"This is script number 1 ",
"This is script number 2 ",
"This is script number 3 "
);
system($_) for @Scripts;
Wenn Sie sie in einem Hash aus irgendeinem Grund speichern möchten, dann speichern Sie sie in eine hat und ein verwenden Hash-Funktion, um die gewünschten Werte zu erhalten.
my %Scripts = (# %, not @ for a hash
sample_1 => "This is script number 1 ",
sample_2 => "This is script number 2 ",
sample_3 => "This is script number 3 "
);
system($_) for values %Scripts;
Aber beachten Sie, dass Hashes sind ungeordnete, so dass Sie steuern können, um die Reihenfolge nicht, in der Ihre Befehle ausgeführt werden.
Was meinen Sie mit dem Aufruf dieses Skripts? Sie könnten dies verwenden, indem Sie $ file in foreach loop verwenden und Subroutinen dieser Dateien aufrufen. – AbhiNickz
Benutze [system] (http://perldoc.perl.org/functions/system.html) –
Es gibt ein '=' nach 'my @ Scripts' fehlt. – choroba