Quiq::ExampleCode - Führe Beispielcode aus
Quiq::Hash
(1) Code $code ausführen und den Code selbst und sein Resultat nach STDOUT schreiben. Das Resultat (Skalar- oder List-Kontext) wird direkt zurückgeliefert.
my $exa = Quiq::ExampleCode->new; $res|@res = $exa->execute($code,-variables=>\@keyval); ...
(2) Code $code ausführen und den Code selbst und sein Resultat in Form eines Objektes zurückliefern. Die Ausgabe auf STDOUT unterbleibt.
my $exa = Quiq::ExampleCode->new( -objectReturn => 1, -verbose => 0, );
Ausführung im Skalar-Kontext:
$obj = $exa->execute($code,-variables=>\@keyval); my $code = $obj->code; my $res = $obj->result; ...
Im List-Kontext:
$obj = $exa->execute($code,-variables=>\@keyval,-listContext=>1); my $code = $obj->code; my $resA = $obj->result; ...
Die Klasse dient zum Ausführen von Beispielcode in Perl. Beispielcode ist dadurch gekennzeichnet, dass der Code und sein Resultat gegenüber gestellt werden.
Variable vorab setzen:
$exa->setVariable( ffm => $ffm, ); my $cmd = $exa->execute(q| $ffm->videoToImages('video.mp4','img', -aspectRatio => '4:3', -framestep => 6, -start => 3, -stop => 10, ); |);
Variable per Option -variables bei Aufruf setzen:
my $cmd = $exa->execute(q| $ffm->videoToImages('video.mp4','img', -aspectRatio => '4:3', -framestep => 6, -start => 3, -stop => 10, );|, -variables => [ ffm => $ffm, ], );
oder (in anderer Reihenfolge):
my $cmd = $exa->execute( -variables => [ ffm => $ffm, ],q| $ffm->videoToImages('video.mp4','img', -aspectRatio => '4:3', -framestep => 6, -start => 3, -stop => 10, ); |, );
$exa = $class->new(@opt);
FileHandle, über die Informationen über die ausgeführten Beispiele ausgegeben wird.
Liefere bei Aufruf von $exa->execute() nicht den Wert des Beispielcode, sondern ein Objekt, das den Beispielcode und den Wert enthält.
Gib Informationen über die ausgeführten Beispiele auf der FileHandle -fileHandle aus.
Instantiiere ein Example-Objekt und liefere eine Referenz auf dieses Objekt zurück.
$exa->setVariable(@keyVal);
Setze Variable, so dass die folgende Kommando-Ausführung (Methode execute()) im Kontext der Klasse Quiq::ExampleCode ausgeführt werden kann. Die Methode liefert keinen Wert zurück.
Anstelle mittels dieser Methode, können die Variablen auch beim Aufruf selbst mit der Option -variables angegeben werden.
$exa->setVariable( obj => $obj, x => $x, y => $y, );
$res|@res = $exa->execute($code,@opt);
Subroutine-Referenz, die das Resultat des Beispiel-Code in eine Stringrepräsentation wandelt, die auf dem Bildschirm ausgegeben werden kann.
Führe den Beispiel-Code im List-Kontext aus. Eine explizite Setzung ist nur im Falle von -objectReturn=>1 nötig
Setze die angegebenen Variablen im Ausführungskontext des Beispiel-Code.
Führe Beispielcode $code aus und liefere das Resultat der Ausführung $res (Skalar-Kontext) oder @res (Listen-Kontext) zurück.
Ist beim Konstruktor die Option -verbose gesetzt worde, wird zusätzlich der Beispielcode und das Resultat ausgegeben.
Der Aufruf
$cmd = $exa->execute(q| $ffm->videoToImages('video.mp4','img', -aspectRatio => '4:3', -framestep => 6, -start => 3, -stop => 10, ); |);
führt zu der Ausgabe
$ffm->videoToImages('video.mp4','img', -aspectRatio => '4:3', -framestep => 6, -start => 3, -stop => 10, ); => ffmpeg -y -loglevel error -stats -i 'video.mp4' -vf 'framestep=6,crop=ih/3*4:ih' -ss 3 -t 7 -qscale:v 2 'img/%06d.jpg'
Der Text nach '=>' ist der gelieferte Wert $cmd.
1.204
Frank Seitz, http://fseitz.de/
Copyright (C) 2022 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.