Just nu i M3-nätverket
Jump to content

perl - input?


Leon_

Recommended Posts

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?

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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. :-)"

 

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...