|
|||||||||||||||||||||||||||
<sslug@sslug> skrev i en meddelelse
news:sslug@sslug
> On Fri, Sep 27, 2002 at 07:15:48AM +0200, Leif Neland wrote:
> > Jeg ville gerne kalde dialog fra et perlscript
> >
> > Jeg kan godt kalde dialog -yesno, der returnerer et errorlevel, men
hvodden
> > klarer man de varianter, der returnerer en streng i stderr?
>
> En mulighed ville være at bruge IPC::Open3, som du kan bruge til at åbne
et
> program og give dig de 3 filehandles stdin, stdout og stderr, men det er
> måske lidt overkill.
>
> En anden mulighed er at kalde dialog som:
>
> my $return = `dialog argumenter 2>&1`;
>
> Hvor perl starter en shell op for dig, der igen starter dialog op for dig
> med stderr duplikeret til stdout - det tager nok en anelse flere
ressourcer
> at køre, men det er lettere at bruge;
Bortset fra at stdout skal til skærmen, fordi det netop er den dialog, jeg
ønsker at vise for brugeren.
Jeg endte med #!/usr/bin/perl
$res=system("dialog --inputbox 'Tast noget' 8 80 Default 2>/tmp/xyz");
open (IN,"/tmp/xyz");
$in = <IN>;
close IN;
die ("Canceled") if $res;
print "Du skrev $in\n";
Der skal lige laves et sikrere filnavn end /tmp/xyz
Leif
|
||||||||||||||
|
||||||||||||||