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ů

13.9.2017 8:00 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tentokrát netradičně v pondělí: 18. září od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

3.9.2017 20:45 /Redakce Linuxsoft.cz
PR: Dne 21. září 2017 proběhne v Praze konference "Mobilní řešení pro business". Hlavní tématy konference budou: nejnovější trendy v oblasti mobilních řešení pro firmy, efektivní využití mobilních zařízení, bezpečnostní rizika a řešení pro jejich omezení, správa mobilních zařízení ve firmách a další.
Přidat komentář

15.5.2017 23:50 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

15.4.2017 15:20 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).
Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

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

> Poslední diskuze

18.9.2017 14:37 / Rojas
high security vault

15.9.2017 7:33 / Wilson
new zealand childcare jobs

31.8.2017 12:11 / Jaromir Obr
Re: ukůládání dat ze souboru

30.7.2017 11:12 / Jaromir Obr
Národní znaky

27.7.2017 12:24 / Jaromir Obr
Cteni/zapis

Více ...

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