Sprawdzanie hasła w pliku tekstowym

#!/usr/bin/perl open FILE, "<plik_haslo.txt";

while (my $line = <FILE>) {   #print $line;

if ($line =~ /^haslo/) {    if ($line =~ /^haslo = " "/) {      $ustawione = 0;    } else {      $ustawione = 1;    }   } }

print $ustawione;

plik:
lp = 12
haslo = ” ”
wiz = 0
typ = 2

Wyrażenie regularne w perlu

#!/usr/bin/perl
#use strict;
#use warnings;

print „Hello, World…\n”;
$content = ‚<link rel=”stylesheet” href=”/pogoda.091005.css”>’;

if($content =~ /^\<link rel=\”stylesheet\” href=\”\/(.+)\”/) {
    $styl_link = $1;
 print $styl_link;
}

update lub insert bazy mysql w perlu

Jeśli w perlu za pomocą use DBD::ODBC; robimy update rekordu czy insert z polskimi znakami powiedzmy „ł” do bazy dodaje się zamiast litery „ł” znak „?”.
Problem można ten obejść za pomocą sprytnego polecenia mysql „_latin2” które wstawiamy przed wstawianym stringiem.
Przykład poniżej:

UPDATE klient SET branza = _latin2'Gumowe artykuły|33241|2399' WHERE idrek = 177221312

Porówniane dwóch plików w perlu.

open (FH,”<lista_01.txt”);
while(<FH>){
@arr=split(” „,$_);
$hash{$arr[0]}=$_;
}
close(FH);

open (FO, „>lista_wynikowa.txt”);

open (FH,”<lista_02.txt”);
while(<FH>){
@arr=split(” „,$_);

if(exists($hash{$arr[0]})){
#    print $hash{$arr[2]} . „\n”;
#    print FO $_;
print FO $_;
}
}
close(FH);

konwersja utf8 na katakana

sub UTF8toKatakana
# convert utf8 to katakana
{
my ( $stri ) = @_;

$stri =~ s/\xC4\x85/a/g;    # ą
$stri =~ s/\xC4\x84/A/g;    # Ą
$stri =~ s/\xC4\x87/c/g;    # ć
$stri =~ s/\xC4\x86/C/g;    # Ć
$stri =~ s/\xC4\x99/e/g;    # ę
$stri =~ s/\xC4\x98/E/g;    # Ę
$stri =~ s/\xC5\x82/l/g;    # ł
$stri =~ s/\xC5\x81/L/g;    # Ł
$stri =~ s/\xC3\xB3/o/g;    # ó
$stri =~ s/\xC3\x93/O/g;    # Ó
$stri =~ s/\xC5\x9B/s/g;    # ś
$stri =~ s/\xC5\x9A/S/g;    # Ś
$stri =~ s/\xC5\xBC/z/g;    # ż
$stri =~ s/\xC5\xBB/Z/g;    # Ż
$stri =~ s/\xC5\xBA/z/g;    # ź
$stri =~ s/\xC5\xB9/Z/g;    # Ź
$stri =~ s/\xc5\x84/n/g;    # ń
$stri =~ s/\xc5\x83/N/g;    # Ń

return $stri;
}

&UTF8toKatakana($calosc);

Dodawanie rekordów do bazy PostgreSQL

#!/usr/bin/perl

use Pg;

open(PLIK,”silownie.csv”);
@tablica=<PLIK>;
close PLIK;
chop(@tablica);
$koniec = @tablica;

$baza = Pg::connectdb(„dbname = bazatestowa”);
$baza->exec(„begin”);

for ($i=0;$i<30;$i++) {
@tab=split(/;/,$tablica[$i]);
my $wynik = $baza->exec(„insert into silownia values (‚$tab[0]’,’$tab[1]’,’$tab[2]’,’$tab[3]’)”);
}

$baza->exec(„end”);
print „Ok\\n”;

Wczytanie pliku do tablicy

sub load_file_to_table {
    my ( $plik, $tab_format) = @_;

    open(PLIK, $plik);
    while ($line = <PLIK>) {

        chomp $line;

        if($tab_format==1) {
            my ($region, $gmina, $kierunkowy) = split(/\t/, $line);
            $tablica{$region.”-„.$gmina} = $kierunkowy;
        }
        elsif($tab_format==2) {
            my ($wojew, $miejsc, $gmina, $kierunkowy, $pna) = split(/\t/, $line);
            $tablica{$wojew.”-„.$gmina}{$miejsc}{‚nr_kier’} = $kierunkowy;
            $tablica{$wojew.”-„.$gmina}{$miejsc}{‚pna’}  = $pna;
            $tablica{$wojew.”-„}{$miejsc}{‚nr_kier’}  = $kierunkowy;
            $tablica{$wojew.”-„}{$miejsc}{‚pna’}   = $pna;
        }
        elsif($tab_format==3) {
            my ($miejsc, $ulica, $kierunkowy, $pna) = split(/\t/, $line);
            $tablica{$miejsc}{$ulica}{‚nr_kier’} = $kierunkowy;
            $tablica{$miejsc}{$ulica}{‚pna’}  = $pna;
        }

        elsif($tab_format==4) {
            my $nr_kier = $line;
               $nr_kier =~ s/\-/ /g;
            $tablica{$nr_kier} = $nr_kier;
        }
    }

    close(PLIK);
    return %tablica;
}

%region_gmina_nr_kierunkowe   = &load_file_to_table ( $PATH_DATA . ‚gmnkier.txt’, 1);