oktatas:programozas:perl:perl_mintak
Tartalomjegyzék
Perl példák
- Szerző: Sallai András
- Copyright © Sallai András, 2011, 2014, 2015, 2016, 2018, 2020
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
HTML oldal előállítása
#!/usr/bin/perl print "Content-Type: text/html; charset=utf-8\n"; print "X-Custom-Header-1: foobar\n\n";
A rendszernapló írása
A rendszernaplóba akár felhasználóként is írhatunk alapesetben a Debian GNU/Linuxos rendszerekben.
Perl nyelven ehhez szükség van a liblogger-syslog-perl nevű csomagra, telepítsük fel:
apt-get install liblogger-syslog-perl
Telepítés után a következő programot írhatjuk:
- main.pl
use Sys::Syslog; openlog("sajatbjegyzes", $logopt, facility); syslog("info|local0", "Itt az üzenet"); closelog();
Karakterek kezelése
POP3 szerver
- main.pl
#!/usr/bin/perl use Net::POP3; $host = 'szervercime'; $user = 'joe'; $pass = 'titok'; $pop = Net::POP3->new($host); $pop = Net::POP3->new($host, Timeout => 60); if($pop->login($user, $pass)> 0) { my $msgnums = $pop->list; foreach my $msgnum (keys %$msgnums) { my $msg = $pop->get($msgnum); print @$msg; print "\n\n=============================================================\n\n"; } } $pop->quit;
IMAP szerver
apt-get install libnet-imap-simple-perl
- main.pl
#!/usr/bin/perl use Net::IMAP::Simple; $host = 'servercim'; $user = 'joska'; $pass = 'titok'; $server = new Net::IMAP::Simple($host); $server->login($user, $pass); $msgnums = $server->select('INBOX'); foreach $msgnum (1..$msgnums) { if($server->seen($msgnum)) { print "Olvasott üzenet! $msgnum\n"; } else { print "\n----------Olvastalan-----------\n"; $lines = $server->get($msgnum); print @$lines; } }
E-mail küldés
- sendmail.pl
#!/usr/bin/perl $to='valaki@zold.and'; $from= 'masvalaki@piros.and'; $subject='Teszt levél'; open(MAIL, "|/usr/sbin/sendmail -t"); print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n\n"; print MAIL "Az üzenetünk\n"; close(MAIL);
- sendmail2.pl
#!/usr/bin/perl use Mail::Send; $to = 'valaki@piros.and'; $form = 'masvalaki@zold.and'; $subject = 'Teszt level 002'; $body = "A level."; $msg = new Mail::Send Subject=>$subject, To=>$to; $fh = $msg->open; print $fh $body . "\n"; $fh->close;
Unicode
- main.pl
#!/usr/bin/perl use strict; use warnings; use Encode; binmode(STDOUT, ":utf8"); print "\x{7a7a}\x{624b}\n"; print codepoint_hex("空") . " " . codepoint_hex("手") . "\n"; sub codepoint_hex { return sprintf "%4x", ord Encode::decode("UTF-8", shift); }
- A binmod() függvény hatására a perl programnak nem probléma a egy Unicode karakter
- A következő sor kiírja a unicode alapján a karaktert
- A következő sor a karakter alapján kiírja a karakter kódpontját
- A program végén van a kódpontot visszaadó függvény
Könyvtár olvasása
- main.pl
#!/usr/bin/perl # Fájlok tartalmának kiírása chdir ("data") or die "$!"; opendir (DIR, ".") or die "$!"; my @files = grep {/.*\.txt/} readdir DIR; close DIR; { local @ARGV = @files; while(<>) { print $_; } }
Curl
Használat parancssorból
A perl értelmezőt használhatjuk parancssorból is. Ha egy perl modult szeretnénk használni, mint a MIME::Base64, akkor azt a -M kapcsolóval így adjuk meg:
perl -MMIME::Base64 -e 'print encode_base64("joska");'
A példában a „joska” felhasználónevet szeretnénk base64 kódolni.
Sütiszörny
A cookie.pl, azaz a Cookie Monster magyar változata.
Excel írása
apt-get install libexcel-writer-xlsx-perl
- exceliras.pl
use Excel::Writer::XLSX; my $workbook = Excel::Writer::XLSX->new( 'valami.xlsx'); my $worksheet = $workbook->add_worksheet(); $worksheet->write(0, 0, "No"); $worksheet->write(0, 1, "Nev"); $worksheet->write(0, 2, "Orzok");
- excelEkezetIras.pl
use Excel::Writer::XLSX; use utf8; my $workbook = Excel::Writer::XLSX->new( 'valami.xlsx'); my $worksheet = $workbook->add_worksheet(); $worksheet->write(0, 0, "No"); $worksheet->write_string(0, 1, "Név"); $worksheet->write(0, 2, "Őrzők");
LibreOffice Calc olvasása
apt install libspreadsheet-read-perl
- calcFileRead.pl
binmode(STDOUT, ":utf8"); use Spreadsheet::Read qw(ReadData); my $book = ReadData ('fajl.ods'); print $book->[1]{B6} . "\n";
Jelszó bekérése
- jelszo.pl
#!/usr/bin/perl use Term::ReadKey; print "Jelszó: "; ReadMode('noecho'); chomp(my $pass = <STDIN>); ReadMode(0);
Felhasználónévvel:
Számok
Számrendszerek:
$szam = 145; # decimális $szam = 0b0101 # bináris szám $szam = 0241 # oktális szám $szam = 0xb4 # hexadecimális
$szam = "145"; # szám szövegként $szam = 142.123*e-18; # tudományos alak $szam = "-15.123e18; # tudományos alak szövegként
Irodalom
oktatas/programozas/perl/perl_mintak.txt · Utolsó módosítás: 2020/06/25 09:17 szerkesztette: admin