Perl Scipting

Links

Pakete: meta::cpan Openbook: Linux / Perl

Zusatzpakete

System Update (immer eine gute Idee)
sudo apt-get update;
Datenbankanbindung mit DBI.pm
sudo apt-get install libdbi-perl
use DBI;
SFTP Netzwekverbindung Net/SFTP/Foreign.pm
sudo apt-get install -y libnet-sftp-foreign-perl
use Net::SFTP::Foreign;
SSH open-ssh
sudo apt-get install -y libnet-openssh-perl
use Net::OpenSSH;
MySql Treiber installieren
sudo apt-get install libdbd-mysql-perl

Use Deklarationen

Strikt (Mäker-Modus)
use strict;
Warnugen ausgeben
use warnings;
Version deklarieren um bestimmte Dinge wie z.B. 'say' benutzen zu können
use v5.10;
given - when Controllstruktur verwenden und Warnugen unterdrücken

use feature qw( switch );

no if $] >= 5.018, warnings => qw( experimental::smartmatch );

Datenbankanbingug nutzen (setzt Paket DBI.pm vorraus)
use DBI;
DNS nutzen (setzt Paket Net-DNS vorraus)
use Net::DNS::Resolver;
SFTP nutzen (setzt Paket Net-SFTP vorraus)
use Net::SFTP::Foreign;
OPEN-SSH nutzen (setzt Paket Net-SSH vorraus)
use Net::OpenSSH;

Variable

Skalare
 
String
my $var = "[value]";
Zahl
my $var = [value];
Arrays
 
Array erstellen

my @array

$array[0] = "[string-value]"

$array[1] = [numeric-value]

Hash
 
Hash deklarieren

my %[hash-var] = (["key1"],["String-Value"], ["key2"],[Numeric-Value], ["key3"],[Value], ... );

Oder:

my %[hash-var] = ([key1] => [value], [key1] => [value] ... );

Auf Inhalte per Key zugreifen

say $[hash-var]{['key1']}

say $[hash-var]{['key2']}}

Bsp.:

my %myHash = ("Name","Jana","Alter",23,"Ort","Berlin");

say $myHash{'Name'}, " ist ", $myHash{'Alter'}, " Jahre alt und wohnt in ", $myHash{'Ort'};

Out: Jana ist 23 Jahre alt und wohnt in Berlin

Auf Inhalte per Itreation zugreifen

while (($[key-var],$[val-var]) = each(%[hash-var])) {

print "Key: " . $[key-var] . " Value: " . $[val-var] . "\n";

}

Bsp.:

my %myHash = (Name => "Jana", Alter => 23, Ort => "Berlin");

while (($key,$value) = each(%myHash)) {

$key . " : " . $value . "\n";

}

Out:

Name : Jana

Alter : 23

Ort : Berlin

Werte zu Hash hinzufügen

$[hash]{[key]} = [value]

Bsp.:

$myHash{Beruf} = "Tieraerztin";

Auf einzelne Werte aus Hash zugreifen

$[hash]{[key]}

Bsp.:

say $myHash{Beruf}

Out:

Beruf : Tieraerztin

Funktionen

Einfache Funktion

sub [funktionName] {

# Code...

}

Aufruf: [funktionName]();

Funktion mit Parameterübergabe

sub [funktionName] {

my $var1 = shift;

my $var2 = shift;

# Code...

}

Aufruf: [funktionName]([param1], [param2]);

Funktion mit Rückgabe

sub [funktionName] {

return [returnvalue];

# Code...

}

Aufruf: $retVal = [funktionName]();

Datenbanken

Mit der DB verbinden MySQL

my $dsn = "dbi:mysql:[db-name]:"."[host-ip]".":3306";

# MySql port is usually: 3306

my $username = "[name]";

my $password = "[password]";

my $dbh = DBI->connect($dsn, $user, $password);

Liunux Konsolenbefehle

Backticks oder qx//

... in aktuellmen Prozess mit Rückgabewert

$var = `[cmd]`;

print $var;

oder:

$var = qx/[cmd] [arg] [...]/;

print $var;

System

... in neuem 'child' Prozess ohne Rückgabewert

system( "[cmd] arg1 arg2" );

oder:

system( "[cmd]", "arg1", "arg2" );