Just nu i M3-nätverket
Gå till innehåll

perl - input?


Leon_

Rekommendera Poster

hej,

jag hämatde activeperl för att testa en "formel" som används i ett program (som då bygger på perl).

Nyfiken som jag var så ville jag leka runt lite. Nu kommer jag till problemet;

Hur kan jag tilldela ett värde till en variabel via "prompten".

Jag alltså kör perl via "kommandotolken".

Måste jag tilldela värdet till en variabel i själv .pl-dokumenet? I C/C++ finns ju "cin" och "cout", men i Perl kan jag bara hitta "print".. Inget för att läsa in något som användaren anger. Har skummat igenom all möjlig dokumentation, men inte hittat något alls om "input" (förutom via hemsidor->forms då..)

Är jag helt ute och cyklar?

 

Länk till kommentar
Dela på andra webbplatser

Argumenten till ett perl-program som körs från kommandoprompten hamnar i en array som heter @ARGV d.v.s. du kan komma åt argumenten med $ARGV[0] , $ARGV[1] o.s.v.

 

/ Tomas

 

Länk till kommentar
Dela på andra webbplatser

Måste jag tilldela värdet till en variabel i själv .pl-dokumenet? I C/C++ finns ju "cin" och "cout", men i Perl kan jag bara hitta "print".. Inget för att läsa in något som användaren anger. Har skummat igenom all möjlig dokumentation, men inte hittat något alls om "input"

 

Hej!

Förutom att använda dig av den speciella variabeln @ARGV så kan du använda dig av en modul som heter Getopt::Long och en som heter Getopt::Mixed. Mer om dessa (och alla andra perl-moduler) kan du läsa på www.cpan.org.

 

 

.dune.

----------------------------------------------

- "I find this a nice feature but it is not according to the documentation.

Or is it a BUG?"

- "Let´s call it an accidental feature. :-)"

 

Länk till kommentar
Dela på andra webbplatser

förutom att läsa med @ARGV vilket ger vad användare skriver direkt efter anropet till ditt program kan du i programmet fråga.

 

Om du vill ha likt cin / cout.... tex. fråga efter anvädarens namn

 

print "\nHej vad heter du ";

chomp($namn = <STDIN>);

 

print "\nHej $namn \n";

 

 

$namn = <STDIN> # Läser från tangetbordet till variablen

chomp($namn = <STDIN>); # chomp tar bort avslutande radbrytning

 

Man kan även skriva

$namn = <STDIN>;

chomp($namn);

 

// Anders

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...