LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Diskuze: Poradna Perl skript - kde je chyba?

Perl skript - kde je chyba?
(link)
13.3.2012 13:40
Josef Zeman

Coby naprostý amatér jsem napsal už několikátý skript s podobnou funkcí, ale u tohoto dostanu při kompilaci:
syntax error at /home/josef/Plocha/UPS/ups.pl line 127, near "my "
Global symbol "$sender" requires explicit package name at /home/josef/Plocha/UPS/ups.pl line 127.
Global symbol "$sender" requires explicit package name at /home/josef/Plocha/UPS/ups.pl line 133.
Global symbol "$sender" requires explicit package name at /home/josef/Plocha/UPS/ups.pl line 137.
Global symbol "$sender" requires explicit package name at /home/josef/Plocha/UPS/ups.pl line 139.
Global symbol "$sender" requires explicit package name at /home/josef/Plocha/UPS/ups.pl line 140.
Global symbol "$sender" requires explicit package name at /home/josef/Plocha/UPS/ups.pl line 140.
Execution of /home/josef/Plocha/UPS/ups.pl aborted due to compilation errors.
Vypadá to naprosto jasně, ale já tam žádnou chybu nevidím. Všechny chyby jsou navíc v sekci odesílání, která je do posledního znaku zkopírovaná z jiného skriptu, kde už dlouho funguje. Když tuto sekci zakomentuji, dělá zbytek přesně to, co má. Když naopak nechám jen sekci odesílání, tak funguje také bez potíží a kompilace je úspěšná. Už mne nic rozumného nenapadá.
Díky za každou radu.
#!/usr/bin/perl
use strict;
use Time::Local;
use Mail::Sender;

# Odstraneni mezer na zacatku a konci retezce
sub trim($) {
my $string = shift;
$string =~ s/^\s+//;
$string =~ s/\s+$//;
return $string;
}

# Deklarace a inicializace promennych
my $trap_obsah = "";
my $i = 0;
my $data = "";
my $count = 1;
my $void = "";
my $hodnota = "";
my $vdata0 = "";
my $vdata1 = "";
my $vdata2 = "";
my $vdata3 = "";
my $vdata4 = "";
my $vdata5 = "";
my $void1 = "";
my $void2 = "";
my $void3 = "";
my $void4 = "";
my $void5 = "";
my $ups = "";
my $oid = "";
my $preklad = "";


# Argumenty z commandline
foreach my $arg (@ARGV) {
#print "$arg\n";

if ($trap_obsah eq "") {
$trap_obsah = "$i: $arg";
} else {
$trap_obsah .= " | $i: $arg";
}

if ($arg =~ m/^1\.3\.6\.1\./) {
$arg =~ s/^1\.3\.6\.1\.//;
my $preklad_file = "/home/josef/ups/preklad.txt";
open(PREKLAD_FILE, "<$preklad_file");
while (my $row = <PREKLAD_FILE>) {
my @pole_row = split (/;/, $row);
my $oid = trim($pole_row[0]);
my $preklad = trim($pole_row[1]);
if (($hodnota eq "") && ($arg =~ m/^$oid/)) {
$hodnota = $preklad;
}
}
if ($hodnota eq "") {
$hodnota = "neni v DB";
}
close(PREKLAD_FILE);
}
if ($hodnota eq "") {
$hodnota = $arg;
}


if ($data eq ""){
CASE:{
$arg eq "-ip" and do {$data = "ip"; last CASE};
$arg eq "-vdata1" and do {$data = "vdata1"; last CASE};
$arg eq "-vdata2" and do {$data = "vdata2"; last CASE};
$arg eq "-vdata3" and do {$data = "vdata3"; last CASE};
$arg eq "-vdata4" and do {$data = "vdata4"; last CASE};
$arg eq "-vdata5" and do {$data = "vdata5"; last CASE};
$arg eq "-void" and do {$data = "void".$count; $count++; last CASE};
}
} else {
CASE1:{
$data eq "ip" and do {$vdata0 = $hodnota; last CASE1};
$data eq "vdata1" and do {$vdata1 = $hodnota; last CASE1};
$data eq "vdata2" and do {$vdata2 = $hodnota; last CASE1};
$data eq "vdata3" and do {$vdata3 = $hodnota; last CASE1};
$data eq "vdata4" and do {$vdata4 = $hodnota; last CASE1};
$data eq "vdata5" and do {$vdata5 = $hodnota; last CASE1};
$data eq "void1" and do {$void1 = $hodnota; last CASE1};
$data eq "void2" and do {$void2 = $hodnota; last CASE1};
$data eq "void3" and do {$void3 = $hodnota; last CASE1};
$data eq "void4" and do {$void4 = $hodnota; last CASE1};
$data eq "void5" and do {$void5 = $hodnota; last CASE1};
}
$data = "";
}
$hodnota = "";
$i++;
}

# Zjisteni UPS
CASE2:{
$vdata0 eq "10.10.10.80" and do {$ups = "UPS"; last CASE2};
}

# Priprava aktualniho casu
my $timestamp_cas = time;
my ($sek, $min, $hod, $den, $mes, $rok) = localtime($timestamp_cas);
$mes += 1;
$rok += 1900;
my $cas = sprintf "%04d-%02d-%02d %02d:%02d:%02d", $rok, $mes, $den, $hod, $min, $sek;
my $datetime = sprintf "%02d.%02d.%04d %02d:%02d:%02d", $den, $mes, $rok, $hod, $min, $sek;

# Sestaveni emailu
my $mailtext = $ups." ".$datetime." ; ".$void2." ".$vdata2.", ".$void3." ".$vdata3.", ".$void4." ".$vdata4.", ".$void5." ".$vdata5;

# Logovani
my $log_file = "/home/josef/ups/log_file.txt";
open(LOG_FILE, ">>$log_file");

printf LOG_FILE "$datetime | $trap_obsah\n";
printf LOG_FILE "$mailtext\n";
close(LOG_FILE);

# Adresati
my $mailto = 'josefzeman@chello.cz'

# Odesilani
my $sender = new Mail::Sender {
smtp => 'smtp.chello.cz',
from => 'UPS@harm.cz',
on_errors => undef,
} or die "Can't create the Mail::Sender object $Mail::Sender::Error\n";

$sender->Open ({
to => $mailto,
cc => '',
subject => $mailtext,
}) or die "Can't open the message: $sender->{'error_msg'}\n";

$sender->SendLineEnc($mailtext);
$sender->Close() or die "Failed to send the message: $sender->{'error_msg'}\n";

Re: Perl skript - kde je chyba?
(link)
13.3.2012 16:36
Martin Janota

Chybi strednik na radku 124

Re: Perl skript - kde je chyba?
(link)
14.3.2012 09:06
Josef Zeman

Díky moc. Koukal jsem do toho druhý den a už jsem neviděl vůbec nic. Nikoho poblíž, kdo by mohl kouknout ale nemám...

DISKUZE

Perl skript - kde je chyba? 13.3.2012 13:40 Josef Zeman
  L Re: Perl skript - kde je chyba? 13.3.2012 16:36 Martin Janota
    L Re: Perl skript - kde je chyba? 14.3.2012 09:06 Josef Zeman




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

16.7.2018 1:05 /František Kučera

Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.


Přidat komentář

18.6.2018 0:43 /František Kučera
Červnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 21. 6. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: F-Droid, aneb svobodný software do vašeho mobilu. Kromě toho budou k vidění i vývojové desky HiFive1 se svobodným/otevřeným čipem RISC-V.
Přidat komentář

23.5.2018 20:55 /Ondřej Čečák
Od pátku 25.5. proběhne na Fakultě informačních technologií ČVUT v Praze openSUSE Conference. Můžete se těšit na spostu zajímavých přednášek, workshopů a také na Release Party nového openSUSE leap 15.0. V na stejném místě proběhne v sobotu 26.5. i seminář o bezpečnosti CryptoFest.
Přidat komentář

20.5.2018 17:45 /Redakce Linuxsoft.cz
Ve čtvrtek 31. května 2018 připravuje webový magazín BusinessIT ve spolupráci s Best Online Média s.r.o. pátý ročník odborné konference Firemní informační systémy 2018. Akce proběhne v kongresovém centru Vavruška (palác Charitas), Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00 hod. dopoledne do cca 15 hod. odpoledne. Konference je zaměřena na efektivní využití firemních informačních systémů a na to, jak plně využít jejich potenciál. Podrobnější informace na webových stránkách konfrence.
Přidat komentář

14.5.2018 7:28 /František Kučera
Květnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 17. 5. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: Audio – zvuk v GNU/Linuxu.
Přidat komentář

7.5.2018 16:20 /František Kučera
Na stránkách spolku OpenAlt vyšla fotoreportáž Pražské srazy 2017 dokumentující srazy za uplynulý rok. Květnový pražský sraz na téma audio se bude konat 17. 5. 2018 (místo a čas ještě upřesníme).
Přidat komentář

17.4.2018 0:46 /František Kučera
Dubnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 4. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tématem tohoto srazu bude OpenStreetMap (OSM) aneb svobodné mapy.
Přidat komentář

16.3.2018 22:01 /František Kučera
Kulatý OpenAlt sraz v Praze oslavíme klasicky: u limonády a piva! Přijďte si posedět, dát si dobré jídlo a vybrat z mnoha piv do restaurace Kulový blesk, který najdete v centru Prahy nedaleko metra I. P. Pavlova na adrese Sokolská 13, Praha 2. Sraz se koná ve čtvrtek 22. března a začínáme v 18:00. Heslo: OpenAlt. Vezměte s sebou svoje hračky! Uvítáme, když si s sebou na sraz vezmete svoje oblíbené hračky. Jestli máte nějaký drobný projekt postavený na Arduinu, nějakou zajímavou elektronickou součástku, či třeba i pěkný úlovek z crowdfundingové akce, neváhejte. Oslníte ostatní a o zábavu bude postaráno.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

20.2.2018 18:48 / Ivan Majer
portal

20.2.2018 15:57 / Jan Havel
Jak využíváte služby cloudu v podnikání?

16.1.2018 1:08 / Ivan Pittner
verejna ip od o2 ubuntu

15.1.2018 17:26 / Mira Harvalik
Re: Jak udělat HTML/Javascript swiping gallery do mobilu?

30.12.2017 20:16 / Michal Knoll
odmocnina

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2018) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze