[SOLVED]Perl, split i podstawienie do tablicy wewnątrz pętli while.

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
knr
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 29 mar 2005, 13:18
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME
Kontakt:

[SOLVED]Perl, split i podstawienie do tablicy wewnątrz pętli while.

Post autor: knr »

Witam!
Możliwe że to błahostka (nie jestem najbieglejszy w Perlu) ale nie mogę znaleźć rozwiązania i doprowadza mnie to już do szału.
Dlaczego to działa:

Kod: Zaznacz cały

#!/usr/bin/perl
use File::Tail;
$name = "/var/log/syslog";
my $ref = tie *FH,"File::Tail",(name=>$name, maxinterval=>3, adjustafter=>3);
while (<FH>) {	
	@tabela = split(/\|/, $_);
	print "@tabela";
}
a to już nie:

Kod: Zaznacz cały

#!/usr/bin/perl
use File::Tail;
$name = "/var/log/syslog";
my $ref = tie *FH,"File::Tail",(name=>$name, maxinterval=>3, adjustafter=>3);
while (<FH>) {	
	@tabela = split(/\|/, $_);
	print "$tabela[0]";
}
? :wall:
Jak bym nie próbował to nie mogę wewnątrz pętli przypisać rozdzielonych jakimś znakiem wpisów z Tail'a do tabeli.

Próbowałem też z innym przykładem opisywanym w man'ie File::Tail :

Kod: Zaznacz cały

use File::Tail;
  $file=File::Tail->new(name=>$name, maxinterval=>3, adjustafter=>3);
  while (defined($line=$file->read)) {
	@tabela = split(/\|/, $line);
	print "$tabela[0]";
}
ale efekt jest identyczny. :evil:

Próbowałem też troszkę inaczej:

Kod: Zaznacz cały

#use File::Tail;
$name = "/var/log/syslog";
my $ref = tie *FH,"File::Tail",(name=>$name, maxinterval=>3, adjustafter=>3);
while (my $zmienna = <FH>) {	
	@tabela = split(/\|/, $zmienna);
	print "$tabela[0]";
}
Niestety również bez zmian w tym przykładzie jak i wielu innych jeszcze jakie próbowałem.

Potrzebuje te dane pobrane i podzielone w array'u wsadzić do mysql'a i niestety utkwiłem w tym miejscu.

Bardzo proszę o pomoc :-?
Pozdrawiam.

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

EDIT:
Taka wersja działa:

#!/usr/bin/perl
use File::Tail;
$name = "/var/log/syslog";
$file=File::Tail->new(name=>$plik, maxinterval=>3, adjustafter=>3);
while (defined($line=$file->read)) {
@tabela = split(/\ /, $line);
print "$tabela[0]\n";
}


:oops:

Pozdrawiam!
Hate It Or Love It (!!!)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

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