NAME
Quiq::ExampleCode - Führe Beispielcode aus
BASE CLASS
SYNOPSIS
(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;
...
DESCRIPTION
Die Klasse dient zum Ausführen von Beispielcode in Perl. Beispielcode ist dadurch gekennzeichnet, dass der Code und sein Resultat gegenüber gestellt werden.
EXAMPLES
Setzen von Variablen
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,
);
|
,
);
METHODS
Konstruktor
new() - Erzeuge Instanz
Synopsis
$exa
=
$class
->new(
@opt
);
Options
- -fileHandle => $fh (Default: \*STDOUT)
-
FileHandle, über die Informationen über die ausgeführten Beispiele ausgegeben wird.
- -objectReturn => $bool (Default: 0)
-
Liefere bei Aufruf von $exa->execute() nicht den Wert des Beispielcode, sondern ein Objekt, das den Beispielcode und den Wert enthält.
- -verbose => $bool (Default: 1)
-
Gib Informationen über die ausgeführten Beispiele auf der FileHandle -fileHandle aus.
Description
Instantiiere ein Example-Objekt und liefere eine Referenz auf dieses Objekt zurück.
Variablen setzen
setVariable() - Setze Variable für Beispielcode-Ausführung
Synopsis
$exa
->setVariable(
@keyVal
);
Description
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.
Example
$exa
->setVariable(
obj
=>
$obj
,
x
=>
$x
,
y
=>
$y
,
);
Beispielcode ausführen
execute() - Führe Beispielcode aus
Synopsis
$res
|
@res
=
$exa
->execute(
$code
,
@opt
);
Options
- -asStringCallback => $subRef (Default: undef)
-
Subroutine-Referenz, die das Resultat des Beispiel-Code in eine Stringrepräsentation wandelt, die auf dem Bildschirm ausgegeben werden kann.
- -listContext => $bool (Default: Wert von wantarray)
-
Führe den Beispiel-Code im List-Kontext aus. Eine explizite Setzung ist nur im Falle von -objectReturn=>1 nötig
- -objectReturn => $bool (Default: 0)
-
Liefere bei Aufruf von $exa->execute() nicht den Wert des Beispielcode, sondern ein Objekt, das den Beispielcode und den Wert enthält.
- -variables => \@keyVal (Default: [])
-
Setze die angegebenen Variablen im Ausführungskontext des Beispiel-Code.
- -verbose => $bool (Default: Konstruktor-Setzung)
-
Gib Informationen über die ausgeführten Beispiele auf der FileHandle -fileHandle aus.
Description
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.
Example
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.
VERSION
1.225
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2025 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.