CPAN: Befehl asuführen

Beitrag lesen

wie kann ich bei befehl ein Fehler abfangen?

Da chsh Meldungen nach STDERR schreibt, hilft dir `` gar nicht. Mache es am besten so:

  
use autodie qw(:all);  
use Try::Tiny;  
use Capture::Tiny qw(capture_merged);  
  
my $output = capture_merged {  
    try {  
        system '/usr/bin/chsh', '-s /bin/false', $benutzer;  
    } catch {  
        warn $_; # z.B. "/usr/bin/chsh" unexpectedly returned exit value 1 at...  
    };  
};  
  
$output # z.B. chsh: Unbekannter Benutzer "foo".  

welches von den etlichen job+queue meinst Du genau.

Nimm doch Qudo, das ist prima für kleine Zwecke.

Wiue das genau ablaufen soll, habe ich leider nicht ganz verstanden.

Die Synopsen sind ergiebig, das muss ich hier nicht nachprogrammieren. Das Schema für die Datenbank befindet sich im Verzeichnis doc der Distribution. Im Fehlerfalle machst du dann eben keine Warnung wie im Beispiel oben, sondern belässt den Job in der Warteschlange und schickst eine Benachrichtigung an den Systemadministrator, damit er die Ursache beheben kann.

wie sollte man logging mit einer Logklasse über mehrere Klassen realisieren?
Muss/Sollte man immer das Object übergeben?

Das ist eine schlechte Idee. Die Klasse sollte die Methoden bereits einkomponiert haben. Ganz leicht geht das mit dem standardmäßigen Importmechanismus, oder als Mixin (hier: Moose-Rolle).