In Perl kann man entweder ein eingebautes Perl verwenden oder system () verwenden, das einen Shell-Befehl aufruft, um das gewisse Ziel zu erreichen. Das Problem ist, dass es für mich als Perl-Anfänger manchmal schwierig ist, das Perl-Äquivalent zu einem Linux-Befehl zu finden.
Nimm das zum Beispiel:
Ich möchte wirklich nur die Perl-Funktionen verwenden, um mehr Perl zu machen, aber ich kann nicht leicht herausfinden, wie man system () in diesem Fall vermeidet.
Also, frage ich mich, gibt es einen Vorteil der Verwendung von Perl-Bibliotheksfunktionen als die Verwendung des system () -Aufrufs? Welcher ist der bessere Weg?
Der Vorteil bei der Verwendung von Bibliotheksfunktionen besteht oft darin, dass Sie sinnvolle Fehlermeldungen ausgeben können, wenn etwas schief geht.
Bei kurzlebigen Skripten oder wenn Entwicklungsressourcen knapp sind, kann die Verwendung eines Systems sinnvoll sein.
Wenn Sie einen Systembefehl ausführen möchten und es perlish machen wollen, empfehle ich die Verwendung von open ().
%Vor%Dies macht Ihr Programm einfach und leicht zu verstehen. Die Unterstützung, die in Perl für Systembefehle zur Verfügung gestellt wird, ist eine der Schönheiten davon. So ist es besser, es so zu verwenden, wie es ist, anstatt die ganze Reise zu gehen, nur um Ihren zu machen Code 'Perl'.
Sie können natürlich die Perl-Skriptversion verwenden, auf die mpapec hingewiesen hat. Aber die Verwendung von system
oder open
version von Asif Idris hat einige Vorteile. Zum Beispiel, wenn Sie eine große Menge an Daten sortieren müssen, bringt Ihnen der Systembefehl sort
viel mehr und viel weniger Schmerzen. Das Sortieren von wenigen GB mit Perl ist PITA, aber es ist kein großes Problem für den Systembefehl sort
und Sie werden sogar alle Ihre Kerne und viel weniger Speicher verwenden.