[SOLVED][perl] sleep i zmienna jako wyraz

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
Goten22
Piegowaty Guziec
Piegowaty Guziec
Posty: 11
Rejestracja: 13 kwie 2009, 16:01
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

[SOLVED][perl] sleep i zmienna jako wyraz

Post autor: Goten22 »

Mam następujące pytanie (w perlu jestem jeszcze nowy), jak zrobić żeby zmienna była wyrazem a nie liczbą, np.

Kod: Zaznacz cały

$komenda = <STDIN>;
if ($komenda == wyraz) {
print "jakiś tekst";
Jeżeli tak zrobię nic to nie daje, ale to działa normalnie.

Kod: Zaznacz cały

$komenda = <STDIN>;
if ($komenda == 1) {
print "jakiś tekst";
Jak zrobić żebym mógł wpisać wyrazy, a nie liczby?

Mam jeszcze drugie pytanie co do opcji sleep. Wydaje mi się, że nie działa ona poprawnie, tzn. chciałbym zrobić takie coś

Kod: Zaznacz cały

print "W";
sleep 1;
print "i";
sleep 1;
itd. itd.
Dałoby mi to efekt takiego jakby pisania. Ale sleep chyba nie jest do tego najlepszy. Może jest jakaś lepsza komenda do tego?
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: [perl] sleep i zmienna jako wyraz

Post autor: kabanek »

co do pierwszego pytania to może spróbuj tak:

Kod: Zaznacz cały

$komenda = "<STDIN>";
nie umiem za dobrze perla więc niech się wypowiedzą mądrzejsi :D
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: [perl] sleep i zmienna jako wyraz

Post autor: beluosus »

Nie bardzo rozumiem pierwszy problem ale chyba nie wiesz, że perl ma słabą typizację.
Drugi problem - chodzi o buforowanie wyjścia, które w Twoim wypadku trzeba wyłączyć:

Kod: Zaznacz cały

$| = 1; # wyłączenie buforowania wyjścia
sleep(1);
print("a");
sleep(1);
print("b");
sleep(1);
print("c");
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
Awatar użytkownika
leon1313
Zakręcona Traszka
Zakręcona Traszka
Posty: 668
Rejestracja: 02 sty 2006, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [perl] sleep i zmienna jako wyraz

Post autor: leon1313 »

To na dzień dobry:
http://www.shlomifish.org/lecture/Perl/ ... tring.html
A druga sprawa nazywa się ładnie z anielskiego "non-buffering output" czy jakoś tak.
Realizowany jest poprzez ustawienie zmiennej specjalnej $| na 1:

Kod: Zaznacz cały

#!/usr/bin/perl
use strict;
use Time::HiRes qw(usleep);
$| = 1;


my $microseconds = 500000;
my $one_word="1234567890";
my @one_word_array = split('', $one_word);

foreach (@one_word_array){
print $_ ;
usleep $microseconds;
}
print "\n";
/edit..za długo to pisałem, wyścignęli mnie :-)
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [perl] sleep i zmienna jako wyraz

Post autor: el.pescado »

Do porównywania napisów służy operator eq a nie ==.
Awatar użytkownika
thalcave
Przyjaciel
Przyjaciel
Posty: 821
Rejestracja: 08 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86

Odp: [perl] sleep i zmienna jako wyraz

Post autor: thalcave »

Kod: Zaznacz cały

if ($komenda == wyraz)
Jak kolega wyżej wspomniał eq nie ==, a dwa lepiej wyraz umieścić w " ".
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
Awatar użytkownika
Goten22
Piegowaty Guziec
Piegowaty Guziec
Posty: 11
Rejestracja: 13 kwie 2009, 16:01
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: [perl] sleep i zmienna jako wyraz

Post autor: Goten22 »

Ok, wielkie dzięki za pomoc ;)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości