SlideShare a Scribd company logo
By : Qrembiezs




      I
A Basic Program



Contoh :

#!/usr/local/bin/perl
#
# Program to do the obvious
#
print 'Hello world.';      # Print a message

Penjelasan        :

Baris Pertama
         Dalam bahasa Perl semua nya di awali dengan ini

#!/usr/local/bin/perl

         walaupun ini mungkin berbeda dari sistem ke sistem.
         Baris ini memerintahkan mesin,apa yang harus dilakukan dengan file tersebut ketika dijalankan

Comments and statements
Comments bisa di masukkan ke program dengan symbol # dan yg lain nya di abaikan kecuali baris pertama Satu-satunya
cara untuk meregangkan komentar dari beberapa baris adalah dengan menggunakan # pada setiap baris Segala sesuatu
yang lain adalah pernyataan Perl yang harus diakhiri dengan titik koma, seperti baris terakhir di atas.

Simple printing
Fungsi cetak output beberapa informasi. Dalam kasus di atas ia akan mencetak string literal Hello world. dan tentu saja
pernyataan diakhiri dengan titik koma.Qta dapat menemukan program di atas menghasilkan hasil yang sedikit tak terduga.
Jadi, hal berikutnya yang harus dilakukan adalah dengan menjalankannya.



                                               Running The Program

Ketik program contoh menggunakan editor teks, dan simpan. Emacs adalah editor yang baik untuk digunakan karena
mempunyai modus sendiri Perl yang format baris baik ketika anda menekan tab (menggunakan `perl-mode Mx '). Tapi
seperti biasa, gunakan mana yang Anda paling nyaman. Setelah telah memasukkan dan menyimpan program, pastikan file
tersebut executable dengan menggunakan perintah

chmod u+x progname
di prompt UNIX, dimana progname adalah nama file program. Sekarang untuk menjalankan program ketik saja salah satu
dari berikut pada prompt.

perl progname
./progname
progname

Jika ada yang salah maka kita bisa mendapatkan pesan kesalahan, atau Anda mungkin mendapatkan sesuatu. Kita selalu
dapat menjalankan program ini tanpa peringatan menggunakan perintah

perl -w progname

pada prompt. Ini akan menampilkan peringatan dan lainnya (mudah-mudahan) pesan membantu sebelum mencoba untuk
menjalankan program. Untuk menjalankan program dengan debugger gunakan perintah

perl -d progname

Saat file dijalankan Perl pertama mengkompilasi dan kemudian menjalankan versi yang dikompilasi. Jadi setelah jeda singkat
untuk kompilasi program harus berjalan cukup cepat. Ini juga menjelaskan mengapa kita bisa mendapatkan error kompilasi
ketika kita mengeksekusi file Perl yang hanya terdiri dari teks.

Pastikan program anda bekerja sebelum melanjutkan. Output program mungkin sedikit tak terduga - setidaknya tidak sangat
cantik. Kita akan melihat berikutnya di variabel dan kemudian dasi ini dengan mencetak lebih cantik.



                                                   Scalar Variable

Jenis yang paling dasar dari variabel di Perl adalah variabel skalar. Variabel skalar memegang kedua string dan angka, dan
yang luar biasa dalam string dan angka benar-benar saling dipertukarkan. Sebagai contoh,

$priority = 9;


set variabel skalar $ prioritas sampai 9, tetapi Anda juga dapat menetapkan string ke variabel yang sama persis:

$priority = 'high';

Perl juga menerima nomor sebagai string, seperti ini:

$priority = '9';
$default = '0009';

dan masih bisa mengatasi dengan aritmatika dan operasi lainnya. Dalam nama variabel umum terdiri dari angka, huruf dan
garis bawah, tetapi mereka tidak harus mulai dengan nomor dan _ $ variabel adalah khusus, seperti yang akan kita lihat
nanti. Juga, Perl adalah case sensitive, sehingga $ a dan $ A yang berbeda.
Operation And Assignment
Perl menggunakan semua operator aritmatika bahasa C:

$a = 1     + 2;          #   Add 1 and 2 and store in $a
$a = 3     - 4;          #   Subtract 4 from 3 and store in $a
$a = 5     * 6;          #   Multiply 5 and 6
$a = 7     / 8;          #   Divide 7 by 8 to give 0.875
$a = 9     ** 10;        #   Nine to the power of 10
$a = 5     % 2;          #   Remainder of 5 divided by 2
++$a;                    #   Increment $a and then return it
$a++;                    #   Return $a and then increment it
--$a;                    #   Decrement $a and then return it
$a--;                    #   Return $a and then decrement it

Dan untuk string Perl di antara nya seperti ini

$a = $b . $c;            # Concatenate $b and $c
$a = $b x $c;            # $b repeated $c times

Untuk menetapkan nilai Perl

$a   = $b;               #   Assign $b to $a
$a   += $b;              #   Add $b to $a
$a   -= $b;              #   Subtract $b from $a
$a   .= $b;              #   Append $b onto $a

Perhatikan bahwa ketika Perl memberikan nilai dengan $ a = $ b itu membuat salinan dari $ b dan kemudian menetapkan
bahwa untuk $ a. Oleh karena itu waktu berikutnya Anda mengubah b $ itu tidak akan mengubah $ a.

Operator lain yang bisa ditemukan pada halaman manual perlop. Tipe pria perlop pada prompt.

Interpolation
Kode berikut mencetak menggunakan concatenation:

$a = 'apples';
$b = 'pears';
print $a.' and '.$b;

Akan lebih baik untuk menyertakan hanya satu string dalam laporan cetak akhir, tetapi garis

print '$a and $b';

mencetak harfiah $ a dan $ b yang tidak sangat membantu. Sebaliknya, kita dapat menggunakan tanda kutip ganda di tempat
tanda kutip tunggal:

print "$a and $b";
Tanda kutip ganda kekuatan interpolasi dari setiap kode, termasuk variabel menafsirkan. Ini adalah jauh lebih bagus
daripada pernyataan asli kami. Kode lain yang diinterpolasi menyertakan karakter khusus seperti baris baru dan tab. Kode 
n adalah baris baru dan  t adalah tab.

Exercise
Latihan ini adalah untuk menulis ulang program Halo dunia sehingga (a) string ditugaskan untuk variabel dan (b) variabel ini
kemudian dicetak dengan karakter baris baru. Gunakan tanda kutip ganda dan tidak menggunakan operator concatenation..



                                                   Array Variables

variabel array yang merupakan daftar skalar (yaitu angka dan string). Variabel Array memiliki format yang sama sebagai
variabel skalar kecuali bahwa mereka diawali oleh simbol @.
Pernyataan :

@food = ("apples", "pears", "eels");
@music = ("whistle", "flute");

memberikan daftar tiga elemen pada variabel array makanan @ dan dua daftar elemen pada variabel array @ musik. Array
diakses dengan menggunakan indeks dimulai dari 0, dan tanda kurung siku digunakan untuk menentukan indeks.

$food[2]

Perhatikan bahwa @ telah berubah menjadi $ karena scalar

Array assignments
dalam semua Perl, ekspresi yang sama dalam konteks yang berbeda dapat menghasilkan hasil yang berbeda. Penugasan
pertama di bawah meledak variabel musik @ sehingga setara dengan tugas kedua.

@moremusic = ("organ", @music, "harp");
@moremusic = ("organ", "whistle", "flute", "harp");

Hal ini seharusnya menyarankan cara menambahkan elemen ke array. Cara yang lebih rapi menambahkan elemen adalah
dengan menggunakan pernyataan

push(@food, "eggs");

yang mendorong eggs ke akhir array @ food. Untuk mendorong dua atau lebih item ke salah satu penggunaan array dalam
bentuk sebagai berikut:

push(@food, "eggs", "lard");
push(@food, ("eggs", "lard"));
push(@food, @morefood);



Fungsi mendorong mengembalikan panjang daftar baru.
Untuk menghapus item terakhir dari daftar dan mengembalikannya menggunakan fungsi pop. Dari daftar asli kita fungsi
kembali pop eels dan @ food sekarang memiliki dua elemen:
$grub = pop(@food);                 # Now $grub = "eels"

Hal ini juga memungkinkan untuk menetapkan array ke sebuah variabel skalar. Seperti biasa konteks adalah penting.

$f = @food;

memberikan panjang @food, tapi

$f = "@food";

mengubah daftar ke dalam string dengan spasi di antara setiap elemen. Ruang ini bisa digantikan oleh string lain dengan
mengubah nilai dari variabel $ khusus ". Variabel ini hanyalah salah satu dari banyak variabel Perl khusus, yang sebagian
besar memiliki nama aneh.

Array juga dapat digunakan untuk membuat beberapa tugas untuk variabel skalar:

($a, $b) = ($c, $d);                            #   Same as $a=$c; $b=$d;
($a, $b) = @food;                               #   $a and $b are the first two
                                                #   items of @food.
($a, @somefood) = @food;                        #   $a is the first item of @food
                                                #   @somefood is a list of the
                                                #   others.
(@somefood, $a) = @food;                        #   @somefood is @food and
                                                #   $a is undefined.



karena array serakah, dan @ somefood akan menelan sebanyak @food. Oleh karena itu sebaiknya dihindari.

Anda mungkin ingin mencari indeks dari elemen terakhir dari daftar. Untuk melakukan ini untuk array @food menggunakan
expression

$#food

Displaying Arrays
Karena konteks begitu penting, tidak mengejutkan kalau memiliki banyak procedure dengan hasil yang berbeda-beda

print @food;    # By itself
print "@food"; # Embedded in double quotes
print @food.""; # In a scalar context
File Handling

Berikut adalah program perl dasar yang tidak sama dengan perintah cat UNIX pada file tertentu.


#!/usr/local/bin/perl
#
# Program to open the password file, read it in,
# print it, and close it again.

$file = '/etc/passwd';                          #   Name the file
open(INFO, $file);                              #   Open the file
@lines = <INFO>;                                #   Read it into an array
close(INFO);                                    #   Close the file
print @lines;                                   #   Print the array


Fungsi buka membuka file untuk input (yaitu untuk membaca). Parameter pertama adalah filehandle yang memungkinkan
Perl untuk mengacu ke file di masa depan. Parameter kedua adalah ungkapan yang menunjukkan nama file. Jika nama file
diberikan dalam tanda kutip maka diambil harfiah tanpa ekspansi shell. Jadi ungkapan '~ / catatan / todolist' tidak akan
diinterpretasikan dengan sukses. Jika Anda ingin memaksa ekspansi shell kemudian gunakan tanda kurung siku: yaitu,
gunakan <~ / catatan / todolist> gantinya.

Fungsi dekat memberitahu Perl untuk menyelesaikan dengan file tersebut. Ada beberapa poin yang berguna untuk
menambah ini diskusi tentang filehandling. Pertama, pernyataan terbuka juga dapat menentukan sebuah file untuk output
dan untuk menambahkan serta masukan. Untuk melakukan hal ini, prefiks nama file dengan> untuk output dan>> untuk
menambahkan:
open(INFO,       $file);            #   Open   for input
open(INFO,       ">$file");         #   Open   for output
open(INFO,       ">>$file");        #   Open   for appending
open(INFO,       "<$file");         #   Also   open for input



Kedua, jika Anda ingin mencetak sesuatu ke file Anda telah dibuka untuk output maka anda dapat menggunakan pernyataan
print dengan parameter tambahan. Untuk mencetak string ke file dengan menggunakan filehandle INFO

print INFO "This line goes to the file.n";

Ketiga, Anda dapat menggunakan berikut untuk membuka standard input (biasanya keyboard) dan output standar (biasanya
layar) masing-masing:

open(INFO, '-');                    # Open standard input
open(INFO, '>-');                   # Open standard output
Dalam program di atas informasi yang dibaca dari file. File adalah file INFO dan untuk membaca dari itu Perl menggunakan
kurung siku. Jadi pernyataan

@lines = <INFO>;

membaca file dinotasikan dengan filehandle ke dalam array @ lines. Perhatikan bahwa ungkapan <INFO> membaca di file
seluruhnya. Hal ini karena membaca terjadi dalam konteks variabel array. Jika @ lines digantikan oleh scalar $ Lines maka
hanya satu baris berikutnya akan dibaca masuk Dalam salah kasus setiap baris disimpan lengkap dengan karakter baris
baru nya di akhir.




                                                  Control Structure

Perl banyak mendukung berbagai jenis struktur kontrol yang cenderung seperti di C, tetapi sangat mirip dengan Pascal,
juga. Di sini kita membahas beberapa dari mereka.


Foreach
Untuk pergi melalui setiap baris array atau struktur daftar-seperti lainnya (seperti baris dalam file) Perl menggunakan
struktur foreach.

foreach $morsel (@food)                                 # Visit each item in turn
                                                # and call it $morsel
{
            print "$morseln";                  # Print the item
            print "Yum yumn";                  # That was nice
}

Tindakan yang harus dilakukan setiap kali yang tertutup di sebuah blok kurung kurawal. Pertama kali melalui blok $morsel
ditetapkan nilai dari item pertama dalam array @ food. Kali ini diberi nilai dari item kedua, dan seterusnya sampai akhir.
Jika @ food kosong untuk memulai dengan maka blok pernyataan di bawah ini tidak pernah dijalankan.

Testing
The next few structures rely on a test being true or false. In Perl any non-zero number and non-empty string is counted as
true. The number zero, zero by itself in a string, and the empty string are counted as false. Here are some tests on
numbers and strings.

$a == $b                            #   Is $a numerically equal to $b?
                                    #   Beware: Don't use the = operator.
$a != $b                            #   Is $a numerically unequal to $b?
$a eq $b                            #   Is $a string-equal to $b?
$a ne $b                            #   Is $a string-unequal to $b?
Anda juga dapat menggunakan logical and, atau and not

($a && $b)                         # Is $a and $b true?
($a || $b)                         # Is either $a or $b true?
!($a)                              # is $a false?



For
Perl memiliki untuk struktur yang meniru C.

for (initialise; test; inc)
{
         first_action;
         second_action;
         etc
}

Pertama dari semua pernyataan menginisialisasinya untuk dijalankan.Kemudian blok tindakan dijalankan. Setelah setiap kali
blok dilaksanakan inc terjadi. Berikut adalah contoh untuk loop untuk mencetak angka 0 sampai 9.

for ($i = 0; $i < 10; ++$i)                    # Start with $i = 1
                                               # Do it while $i < 10
                                               # Increment $i before repeating
{
            print "$in";
}



While And Until
Berikut ini adalah sebuah program yang membaca input beberapa dari keyboard dan tidak akan berlanjut sampai itu adalah
password yang benar

#!/usr/local/bin/perl
print "Password? ";                            #   Ask for input
$a = <STDIN>;                                  #   Get input
chop $a;                                       #   Remove the newline at end
while ($a ne "fred")                           #   While input is wrong...
{
    print "sorry. Again? ";                    # Ask again
    $a = <STDIN>;                              # Get input again
    chop $a;                                   # Chop off newline again
}



kode dijalankan sementara input tidak sama dengan password. Struktur sementara harus cukup jelas, tapi ini adalah
kesempatan untuk melihat beberapa hal. Pertama, kita dapat kita baca dari standard input (keyboard) tanpa membuka file
yang pertama. Kedua, ketika sandi dimasukkan $ a diberi nilai termasuk karakter baris baru di akhir. Fungsi memotong
menghapus karakter terakhir dari string yang dalam hal ini adalah baris baru.
Untuk menguji hal sebaliknya kita bisa menggunakan sampai pernyataan hanya dalam cara yang sama. Ini mengeksekusi
blok berulang kali sampai ekspresi bernilai true.

Yang bermanfaat lainya adalah menempatkan while atau until cek pada akhir blok pernyataan daripada di awal. Ini akan
membutuhkan kehadiran operator untuk menandai awal blok dan uji di akhir. Sekali lagi pesan dalam program password di
atas maka dapat ditulis seperti ini.

#!/usr/local/bin/perl
do
{
        "Password? ";                           # Ask for input
        $a = <STDIN>;                           # Get input
        chop $a;                                # Chop off newline
}
while ($a ne "fred")                            # Redo while wrong input




                                                      Conditionals

Tentu saja Perl juga memungkinkan if/ then / else statements.

if ($a)
{
            print "The string is not emptyn";
}
else
{
            print "The string is emptyn";
}

Untuk ini, ingatlah bahwa sebuah string kosong dianggap false. Hal ini juga akan memberikan "empty" terjadi jika $ a adalah
string 0.Hal ini juga memungkinkan untuk menyertakan lebih banyak alternatif dalam sebuah pernyataan bersyarat:

if (!$a)                                        # The ! is the not operator
{
        print "The string               is emptyn";
}
elsif (length($a) == 1)                                     # If above fails, try this
{
        print "The string               has one charactern";
}
elsif (length($a) == 2)                                     # If that fails, try this
{
        print "The string               has two charactersn";
}
else                                            # Now, everything has failed
{
        print "The string               has lots of charactersn";
}
Dalam hal ini, penting untuk memperhatikan bahwa pernyataan else if benar-benar memiliki "e" yang hilang.


                                                     String Matching

Salah satu fitur yang paling berguna dari Perl (jika tidak fitur yang paling berguna) adalah fasilitas string manipulasi nya
kuat. Di jantung ini adalah ekspresi reguler (RE) yang dibagi oleh banyak utilitas UNIX lainnya.



Reguler Expression
Ekspresi reguler terkandung dalam garis miring, dan mencocokkan terjadi dengan operator ~ =. Ungkapan berikut ini benar
jika string muncul dalam variabel $ setence.

$sentence =~ /the/

RE adalah case sensitive, jadi

$sentence = "The quick brown fox";

maka match di atas akan false. Operator! ~ digunakan untuk bercak Non Match. Pada contoh di atas

$sentence !~ /the/

benar karena string tidak muncul di $sentence

The $_ special variable
Kali ini kita akan menggunakan Conditional sebagai

if ($sentence =~ /under/)
{
        print "We're talking about rugbyn";
}

Ini akan mencetak pesan jika kita memasuk kan code berikut ini

$sentence = "Up and under";
$sentence = "Best winkles in Sunderland";



Tetapi akan lebih mudah jika kita memberikan kalimat tersebut pada variabel khusus $which, tentu saja scalar. Jika kita
melakukan hal ini maka kita bisa menghindari penggunaan match dan operator non-match dan di atas dapat ditulis hanya
sebagai
if (/under/)
{
        print "We're talking about rugbyn";
}

$ Variabel adalah bentuk default untuk operasi Perl, banyak dan cenderung akan digunakan

More on REs
Dalam sebuah RE ada banyak karakter khusus, dan inilah yang baik memberikan kekuasaan mereka dan membuat mereka
terlihat sangat rumit. Yang terbaik untuk membangun penggunaan Res perlahan; penciptaan mereka dapat menjadi sesuatu
dari sebuah bentuk seni.

Berikut adalah beberapa Re karakter khusus dan maknanya

.           #   Any single character except a newline
^           #   The beginning of the line or string
$           #   The end of the line or string
*           #   Zero or more of the last character
+           #   One or more of the last character
?           #   Zero or one of the last character



dan di sini adalah contoh beberapa matching. Ingat yang harus dilampirkan dalam garis miring /.../ untuk digunakan.

t.e         #   t followed by anthing followed by e
            #   This will match the
            #                   tre
            #                   tle
            #   but not te
            #           tale
^f          #   f at the beginning of a line
^ftp        #   ftp at the beginning of a line
e$          #   e at the end of a line
tle$        #   tle at the end of a line
und*        #   un followed by zero or more d characters
            #   This will match un
            #                   und
            #                   undd
            #                   unddd (etc)
.*          #   Any string without a newline. This is because
            #   the . matches anything except a newline and
            #   the * means zero or more of these.
^$          #   A line with nothing in it.



Ada lebih banyak pilihan. Square kurung digunakan untuk mencocokkan salah satu karakter di dalamnya. Di dalam kurung
persegi - menunjukkan "antara " dan sebuah ^ pada mulanya berarti "tidak":
[qjk]                   #   Either q or j or k
[^qjk]                  #   Neither q nor j nor k
[a-z]                   #   Anything from a to z inclusive
[^a-z]                  #   No lower case letters
[a-zA-Z]                #   Any letter
[a-z]+                  #   Any non-zero sequence of lower case letters



Pada titik ini Anda mungkin dapat melompat ke akhir dan melakukan setidaknya sebagian besar latihan. Sisanya sebagian
besar hanya untuk referensi.

Sebuah bar vertikal | merupakan "atau" dan tanda kurung (...) dapat digunakan untuk hal-hal grup bersama:

jelly|cream             # Either jelly or cream
(eg|le)gs               # Either eggs or legs
(da)+                   # Either da or dada or dadada or...

Dan ini adalah bentuk special char nya

n                      #   A newline
t                      #   A tab
w                      #   Any alphanumeric (word) character.
                        #   The same as [a-zA-Z0-9_]
W                      #   Any non-word character.
                        #   The same as [^a-zA-Z0-9_]
d                      #   Any digit. The same as [0-9]
D                      #   Any non-digit. The same as [^0-9]
s                      #   Any whitespace character: space,
                        #   tab, newline, etc
S                      #   Any non-whitespace character
b                      #   A word boundary, outside [] only
B                      #   No word boundary

Jelas karakter seperti $, |, [,), , / dan seterusnya adalah kasus-kasus aneh dalam ekspresi reguler. Jika Anda ingin cocok
untuk salah satu dari mereka maka Anda harus mendahului itu dengan backslash. Jadi:

|                      #   Vertical bar
[                      #   An open square bracket
)                      #   A closing parenthesis
*                      #   An asterisk
^                      #   A carat symbol
/                      #   A slash
                      #   A backslash
Beberapa contoh dari RE

[01]                    #   Either "0" or "1"
/0                     #   A division by zero: "/0"
/ 0                    #   A division by zero with a space: "/ 0"
/s0                   #   A division by zero with a whitespace:
                        #   "/ 0" where the space may be a tab etc.
/ *0                   #   A division by zero with possibly some
                        #   spaces: "/0" or "/ 0" or "/ 0" etc.
/s*0                  #   A division by zero with possibly some
                        #   whitespace.
/s*0.0*              #   As the previous one, but with decimal
                        #   point and maybe some 0s after it. Accepts
                        #   "/0." and "/0.0" and "/0.00" etc and
                        #   "/ 0." and "/ 0.0" and "/    0.00" etc.




                                            Substitution And Translation

Serta mengidentifikasi ekspresi reguler Perl dapat membuat substitusi berdasarkan pertandingan tersebut. Cara untuk
melakukan ini adalah dengan menggunakan fungsi yang dirancang untuk meniru cara substitusi dilakukan dalam editor teks
vi. Sekali lagi operator pertandingan yang digunakan, dan sekali lagi jika dihilangkan maka substitusi diasumsikan
berlangsung dengan $Variable.

Untuk mengganti terjadinya london oleh London pada string kalimat $ kita menggunakan ungkapan

$sentence =~ s/london/London/

dan untuk melakukan hal yang sama dengan $ variabel, hanya

s/london/London/

Perhatikan bahwa dua ekspresi reguler (london dan London) yang dikelilingi oleh total tiga garis miring. Hasil dari ungkapan
ini adalah jumlah substitusi dibuat, sehingga sangat baik 0 (false) atau 1 (true) dalam kasus ini.
Options
Contoh ini hanya mengganti terjadinya string pertama, dan mungkin bahwa akan ada lebih dari satu string seperti kita ingin
mengganti. Untuk membuat substitusi global slash terakhir diikuti oleh a g sebagai berikut:

s/london/London/g

which terntu saja bisa digunakan dalam $Variable. Sekali lagi ekspresi mengembalikan jumlah substitusi dibuat, yang adalah
0 (false) atau sesuatu yang lebih besar dari 0 (benar).

Jika kita ingin juga mengganti lOndon, lonDON, LoNDoN dan sebagainya maka kita bisa menggunakan

s/[Ll][Oo][Nn][Dd][Oo][Nn]/London/g



tetapi cara yang lebih mudah adalah dengan menggunakan opsi i (untuk "abaikan"). Ekspresi

s/london/London/gi



akan membuat substitusi global mengabaikan kasus. Pilihan i juga digunakan dalam /.../ regular expression match.


Remembering Paterns
Ini sering berguna untuk mengingat pola-pola yang telah cocok sehingga mereka dapat digunakan lagi. Kebetulan bahwa apa
pun yang cocok dalam kurung akan dikenang dalam variabel $ 1,...,$ 9. String ini juga dapat digunakan dalam ekspresi
reguler yang sama (atau substitusi) dengan menggunakan kode-kode khusus RE  1,...,  9. Misalnya

$_ = "Lord Whopper of Fibbing";
s/([A-Z])/:1:/g;
print "$_n";

akan menggantikan setiap huruf huruf besar oleh surat dikelilingi oleh titik dua. Ini akan mencetak: L: Ord: W: hopper dari: F:
ibbing. Variabel Variabel $ 1,...,$ 9 adalah read-only

Contoh lain nya

if (/(b.+b) 1/)
{
        print "Found $1 repeatedn";
}



akan mengidentifikasi kata-kata diulang. Setiap  b mewakili batas kata dan + cocok setiap string yang tidak kosong., jadi 
b. +  b match apapun antara dua batas kata. Ini kemudian diingat oleh tanda kurung dan disimpan sebagai  1 untuk
ekspresi reguler dan sebagai $ 1 untuk seluruh program.
Berikut swap karakter pertama dan terakhir dari garis dalam variabel

s/^(.)(.*)(.)$/321/

The ^ dan $ match awal dan akhir baris. Menyimpan kode  1 karakter pertama, sedangkan  2 kode menyimpan segala
sesuatu yang lain sampai karakter terakhir yang disimpan dalam kode  3. Kemudian bahwa seluruh baris diganti dengan  1
dan  3

Setelah matching, qta dapat menggunakan variabel read-only khusus $ `dan $ & dan $ 'untuk menemukan apa yang cocok
sebelum, selama dan setelah pencarian. Jadi setelah.

$_ = "Lord Whopper of Fibbing";
/pp/;

Akhirnya pada subjek pola mengingat hal itu layak mengetahui bahwa dalam garis miring dari sebuah pertandingan atau
beberapa variabel substitusi yang diinterpolasi. Jadi

$search = "the";
s/$search/xxx/g;



akan menggantikan dengan xxx. Jika untuk mengganti maka kita tidak dapat melakukan s / $ searchre / xxx / karena ini
akan diinterpolasi sebagai searchre $ variabel. Sebaliknya kita harus meletakkan nama variabel dalam kurung kurawal
sehingga kode menjadi

$search = "the";
s/${search}re/xxx/;
SPLIT

Sebuah fungsi yang sangat berguna di Perl, yang terbagi atas string dan tempat ke dalam array. Fungsi menggunakan
ekspresi reguler dan sebagai karya biasa pada variabel _ $ kecuali ditentukan

Split Fuction digunakan seperti ini :

$info = "Caine:Michael:Actor:14, Leafy Drive";
@personal = split(/:/, $info);



Memiliki effect keseluruhan yg sama, seperti

@personal = ("Caine", "Michael", "Actor", "14, Leafy Drive");



Jika kita memiliki informasi yang disimpan dalam variabel $ _ maka kita hanya bisa menggunakan ini

@personal = split(/:/);

Jika bidang yang dibagi oleh jumlah titik dua maka kita dapat menggunakan kode RE untuk mendapatkan pembulatan code

$_ = "Capes:Geoff::Shot putter:::Big Avenue";
@personal = split(/:+/);

Bisa juga kayak gini

@personal = ("Capes", "Geoff",
             "Shot putter", "Big Avenue");

Tapi yang ini

$_ = "Capes:Geoff::Shot putter:::Big Avenue";
@personal = split(/:/);

Akan menjadi seperti ini

@personal = ("Capes", "Geoff", "",
             "Shot putter", "", "", "Big Avenue");

Sebuah kata dapat dibagi ke dalam karakter, split kalimat menjadi kata-kata dan paragraf dibagi menjadi kalimat:

@chars = split(//, $word);
@words = split(/ /, $sentence);
@sentences = split(/./, $paragraph);

Dalam kasus pertama string nol cocok antara karakter masing-masing, dan itulah sebabnya array karakter @ adalah array
karakter - yaitu sebuah array dari string dengan panjang 1.
Associative Arrays

Daftar array biasa memungkinkan kita untuk mengakses elemen mereka dengan nomor. Elemen pertama dari array
makanan adalah $ makanan @ [0]. Elemen kedua adalah $ makanan [1], dan seterusnya. Tetapi Perl juga memungkinkan kita
untuk membuat array yang diakses oleh string. Ini disebut array asosiatif.

Untuk mendefinisikan sebuah array asosiatif kita menggunakan notasi kurung biasa, tapi array itu sendiri diawali dengan
tanda%. Misalkan kita ingin membuat sebuah array orang dan usia mereka. Ini akan terlihat seperti ini:

%ages = ("Michael Caine", 39,
         "Dirty Den", 34,
         "Angie", 27,
         "Willy", "21 in dog years",
         "The Queen Mother", 108);

Sekarang kita dapat menemukan usia seseorang dengan ekspresi berikut

$ages{"Michael Caine"};                                  #    Returns 39
$ages{"Dirty Den"};                            #   Returns    34
$ages{"Angie"};                                #   Returns    27
$ages{"Willy"};                                #   Returns    "21 in dog years"
$ages{"The Queen Mother"};                     #   Returns    108

Perhatikan bahwa setiap daftar seperti array tanda% telah berubah menjadi $ untuk mengakses sebuah elemen tertentu
karena unsur yang skalar. Tidak seperti array daftar indeks (dalam hal ini nama orang) terlampir dalam kurung kurawal,
gagasan bahwa array asosiatif yang lebih bagus dari array daftar.

Array asosiatif dapat dikonversi kembali ke dalam array daftar hanya dengan menugaskan ke variabel array daftar. Sebuah
array daftar dapat dikonversi menjadi array asosiatif dengan menugaskan ke variabel array asosiatif. Idealnya array daftar
akan memiliki bahkan jumlah elemen:

@info = %ages;                     #   @info is a list array. It
                                   #   now has 10 elements
$info[5];                          #   Returns the value 27 from
                                   #   the list array @info
%moreages = @info;                 #   %moreages is an associative
                                   #   array. It is the same as %ages
Operator

Array asosiatif tidak memiliki untuk elemen (mereka seperti tabel hash) tetapi apakah itu mungkin untuk mengakses semua
elemen pada gilirannya menggunakan fungsi tombol dan fungsi nilai-nilai:

foreach $person (keys %ages)
{
        print "I know the age of $personn";
}
foreach $age (values %ages)
{
        print "Somebody is $agen";
}

Ketika kunci disebut ia mengembalikan daftar kunci (indeks) dari array asosiatif. Ketika nilai-nilai disebut mengembalikan
daftar dari nilai-nilai dari array. Fungsi-fungsi kembali daftar mereka dalam urutan yang sama, tapi urutan ini tidak ada
hubungannya dengan urutan elemen telah dimasukkan.Ketika kunci dan nilai disebut dalam konteks skalar mereka kembali
jumlah kunci / pasangan nilai dalam array asosiatif.

Ada juga setiap fungsi yang mengembalikan daftar dua unsur kunci dan nilainya. Setiap kali each disebut mengembalikan
kunci lain / pasangan nilai:

while (($person, $age) = each(%ages))
{
        print "$person is $agen";
}
Subroutines

Bahasa Program Perl memungkinkan pengguna untuk menentukan fungsi mereka sendiri, yang disebut Subroutines. Mereka
mungkin ditempatkan di manapun dalam program Anda, tetapi mungkin lebih baik untuk menempatkan mereka semua di
awal atau semua di akhir.

sub mysubroutine
{
        print "Not a very interesting routinen";
        print "This does the same thing every timen";
}



terlepas dari setiap parameter yang mungkin kita lewati. Semua ini akan bekerja untuk memanggil Subroutines . Perhatikan
bahwa Subroutines disebut dengan karakter & di depan nama:

&mysubroutine;         # Call the subroutine
&mysubroutine($_);     # Call it with a parameter
&mysubroutine(1+2, $_);        # Call it with two parameters



Parameters
Dalam kasus di atas parameter yang diterima tetapi diabaikan. Ketika Subroutines disebut parameter apapun dikirimkan
sebagai daftar dalam variabel array yang daftar khusus @ _. Variabel ini sama sekali tidak ada hubungannya dengan
variabel skalar $ _. Para Subroutines berikut hanya mencetak daftar itu disebu. Hal ini diikuti oleh beberapa contoh
penggunaannya.

sub printargs
{
        print "@_n";
}

&printargs("perly", "king");   # Example prints "perly king"
&printargs("frog", "and", "toad"); # Prints "frog and toad"

Sama seperti setiap array daftar lainnya unsur-unsur individual dari @ _ dapat diakses dengan square bracket notation

sub printfirsttwo
{
        print "Your first argument was $_[0]n";
        print "and $_[1] was your secondn";
}

Sekali lagi harus ditekankan bahwa di indek skalar $ _ [0] dan $ _ [1] dan sebagainya telah ada dengan
skalar $ _ yang juga dapat digunakan tanpa takut crash.
Returning Values
Subroutines selalu dievaluasi di akhir. Subroutines ini mengembalikan maksimal dua parameter masukan. Sebuah contoh
penggunaannya berikut.

sub maximum
{
        if ($_[0] > $_[1])
        {
                $_[0];
        }
        else
        {
                $_[1];
        }
}

$biggest = &maximum(37, 24);                     # Now $biggest is 37



Para & printfirsttwo Subroutines di atas juga mengembalikan nilai, dalam hal ini 1. Ini karena hal terakhir yang s Subroutines
lakukan adalah pernyataan cetak dan hasil dari pernyataan cetak yang sukses adalah selalu 1.

Local Variable
Local Variable Subroutines, dan jadi tentu saja adalah $ _ [0], $ _ [1], $ _ [2], dan seterusnya. Variabel lain dapat dibuat
lokal juga, dan ini berguna jika kita ingin memulai mengubah parameter masukan. Tes Subroutines berikut untuk melihat
apakah ada di dalam satu string lain.

sub inside
{
        local($a, $b);                                        #   Make local variables
        ($a, $b) = ($_[0], $_[1]);                            #   Assign values
        $a =~ s/ //g;                                         #   Strip spaces from
        $b =~ s/ //g;                                         #     local variables
        ($a =~ /$b/ || $b =~ /$a/);                           #   Is $b inside $a
                                                              #     or $a inside $b?
}

&inside("lemon", "dole money");                                           # true



Pada kenyataannya, bahkan bisa merapikan dengan mengganti dua baris pertama dengan

local($a, $b) = ($_[0], $_[1]);
Tutorial Bahasa Programm Perl Full Part

              Thanx’s to :
               Whitehat
               Wenkhairu
               Cyberheb
                 Scifix
            Prabujoyoboyo
              Darkslayers
                Shamus
             ./Blacknotes

            Also Thanx’s to :
      All Member Of Antijasakom
       All Member Of Devilzc0de
        All Member Of Jasakom
      All Member Of Jatim Crew

More Related Content

What's hot (18)

DOCX
Resume praktikum
NuRul Emi
 
PDF
Os2013 lap6-rizqitohopi
rizqitohopi
 
PPTX
materi Php lanjutan
Cahya Outsiders
 
DOCX
pemrograman php ii
Hazzan Oratso Aishiteru
 
PDF
Os2013 lap2-rizqitohopi
rizqitohopi
 
PDF
Tugas modul praktikum pemrograman web
Wayan Suntara
 
PDF
Os2013 lap6-ridwan
Ridwan Panigoro
 
PDF
Mengenal script php 3
Ali Muntaha
 
PDF
Basic PHP Syntax
daffa12
 
PDF
Os2013 lap5-rizqitohopi
rizqitohopi
 
PDF
tutorial php
Albertz Ace-Red
 
PDF
Modul php 1
Sejahtera Affif
 
PDF
Os2013 lap1-sasmita daeng sembang
rhamalia
 
PDF
Os2013 lap4-rizqitohopi
rizqitohopi
 
PDF
Lapres so d_modul4_yuka
Yuka Arjaka
 
PPTX
Pert 4. cursor
Abrianto Nugraha
 
PPTX
Pengenalan PHP
Dika Wahyu Suryadi
 
DOCX
Modul 2
Reza Optoriter
 
Resume praktikum
NuRul Emi
 
Os2013 lap6-rizqitohopi
rizqitohopi
 
materi Php lanjutan
Cahya Outsiders
 
pemrograman php ii
Hazzan Oratso Aishiteru
 
Os2013 lap2-rizqitohopi
rizqitohopi
 
Tugas modul praktikum pemrograman web
Wayan Suntara
 
Os2013 lap6-ridwan
Ridwan Panigoro
 
Mengenal script php 3
Ali Muntaha
 
Basic PHP Syntax
daffa12
 
Os2013 lap5-rizqitohopi
rizqitohopi
 
tutorial php
Albertz Ace-Red
 
Modul php 1
Sejahtera Affif
 
Os2013 lap1-sasmita daeng sembang
rhamalia
 
Os2013 lap4-rizqitohopi
rizqitohopi
 
Lapres so d_modul4_yuka
Yuka Arjaka
 
Pert 4. cursor
Abrianto Nugraha
 
Pengenalan PHP
Dika Wahyu Suryadi
 

Viewers also liked (18)

PPTX
Små og store data - hvad kan de bruges til, hvordan får man fingre i dem, og ...
Janus Sandsgaard
 
PDF
Konsep Dasar TCP/IP
Qrembiezs Intruder
 
PPTX
Flautista d'Hamelin
parvularielsagrer
 
PDF
Tutorial perl programming basic eng ver
Qrembiezs Intruder
 
PPTX
Giv din digitale salgsmotor et servicetjek
Janus Sandsgaard
 
PPTX
Digital transformation af samfundet
Janus Sandsgaard
 
PPTX
Maj konference 2012 - Janus Sandsgaard
Janus Sandsgaard
 
PPTX
Fremtidens købmand hos Dansk Erhverv - 30. september 2016
Janus Sandsgaard
 
ODP
Open Street Map hos KMS
Janus Sandsgaard
 
PPTX
Internettet da farfar var dreng
Janus Sandsgaard
 
PPT
Quatre petites cantonades de no res
parvularielsagrer
 
PPTX
Aalborg Handelsskole 140 års jubilæum - New rules for Business - 14. Septembe...
Janus Sandsgaard
 
PPTX
Amesto, grossist-seminar - 12. marts 2015Amesto marts 2015
Janus Sandsgaard
 
PPT
Quatrepetitescantonades grup 2 DRIADES
parvularielsagrer
 
PPTX
VR opening - Internet Week Denmark May 9, 2016
Janus Sandsgaard
 
PPTX
Dríades
parvularielsagrer
 
PDF
Tutorial basic of c ++lesson 1 eng ver
Qrembiezs Intruder
 
PDF
Tutorial basic of c++ lesson 1 ind ver
Qrembiezs Intruder
 
Små og store data - hvad kan de bruges til, hvordan får man fingre i dem, og ...
Janus Sandsgaard
 
Konsep Dasar TCP/IP
Qrembiezs Intruder
 
Flautista d'Hamelin
parvularielsagrer
 
Tutorial perl programming basic eng ver
Qrembiezs Intruder
 
Giv din digitale salgsmotor et servicetjek
Janus Sandsgaard
 
Digital transformation af samfundet
Janus Sandsgaard
 
Maj konference 2012 - Janus Sandsgaard
Janus Sandsgaard
 
Fremtidens købmand hos Dansk Erhverv - 30. september 2016
Janus Sandsgaard
 
Open Street Map hos KMS
Janus Sandsgaard
 
Internettet da farfar var dreng
Janus Sandsgaard
 
Quatre petites cantonades de no res
parvularielsagrer
 
Aalborg Handelsskole 140 års jubilæum - New rules for Business - 14. Septembe...
Janus Sandsgaard
 
Amesto, grossist-seminar - 12. marts 2015Amesto marts 2015
Janus Sandsgaard
 
Quatrepetitescantonades grup 2 DRIADES
parvularielsagrer
 
VR opening - Internet Week Denmark May 9, 2016
Janus Sandsgaard
 
Tutorial basic of c ++lesson 1 eng ver
Qrembiezs Intruder
 
Tutorial basic of c++ lesson 1 ind ver
Qrembiezs Intruder
 
Ad

Similar to Tutorial perl programming ind ver (20)

PPTX
Web programming - Bahasa pemrograman PHP
RedyWinatha1
 
PPT
265991658-Pengantar-PHP-ppt.ppt
ilhamsafari2
 
PDF
Lapres so d_modul2_yuka
Yuka Arjaka
 
PPTX
Per 2 pemrograman web dengan variabel
Ihsan Utomo
 
PDF
Lapres so d_modul3_yuka
Yuka Arjaka
 
DOCX
Laporan praktikum web ke 5
sunubismel13
 
PPT
Php 1
Fajar Baskoro
 
PPTX
Tugas Presentasi Pemrogram Komputer.pptx
romaiipay
 
PPT
Pert 2. memahami fondasi pemrograman java
radar radius
 
PDF
Dasar PHP
Yusuf A.H.
 
PDF
PROGRESS - Belajar PHP #1
UKM PROGRESS
 
DOCX
Pertemuan 2
Syaiful Ahdan
 
PPSX
Php 1
Ariezsam
 
PDF
Operator PHP = &
Wahyu Bimo
 
PPT
Situs/web dapat dikategorikan menjadi dua yaitu web statis dan web dinamis/in...
helmikurniawan9
 
PDF
Praktikum 6A
Indra Wijaya
 
DOCX
Dasar dasar turbo pascal
Duriani
 
PPT
Array
formatik
 
PDF
Lapres so d_modul5_yuka
Yuka Arjaka
 
PDF
Mengimplementasikan Pemrograman Terstruktur.pdf
raia22
 
Web programming - Bahasa pemrograman PHP
RedyWinatha1
 
265991658-Pengantar-PHP-ppt.ppt
ilhamsafari2
 
Lapres so d_modul2_yuka
Yuka Arjaka
 
Per 2 pemrograman web dengan variabel
Ihsan Utomo
 
Lapres so d_modul3_yuka
Yuka Arjaka
 
Laporan praktikum web ke 5
sunubismel13
 
Tugas Presentasi Pemrogram Komputer.pptx
romaiipay
 
Pert 2. memahami fondasi pemrograman java
radar radius
 
Dasar PHP
Yusuf A.H.
 
PROGRESS - Belajar PHP #1
UKM PROGRESS
 
Pertemuan 2
Syaiful Ahdan
 
Php 1
Ariezsam
 
Operator PHP = &
Wahyu Bimo
 
Situs/web dapat dikategorikan menjadi dua yaitu web statis dan web dinamis/in...
helmikurniawan9
 
Praktikum 6A
Indra Wijaya
 
Dasar dasar turbo pascal
Duriani
 
Array
formatik
 
Lapres so d_modul5_yuka
Yuka Arjaka
 
Mengimplementasikan Pemrograman Terstruktur.pdf
raia22
 
Ad

Recently uploaded (20)

PDF
Modul Ajar Biologi Kelas 12 Deep Learning
Adm Guru
 
PDF
MODUL PEMBELAJARAN DEEP LEARNING PENDIDIKAN PANCASILA KELAS 6 CP 032 REVISI 2...
AndiCoc
 
PDF
MODUL PEMBELAJARAN DEEP LEARNING SENI RUPA KELAS 6 CP 032 REVISI 2025 KURIKUL...
AndiCoc
 
PDF
20250623 - Sosialisasi Pembelajaran Koding dan Kecerdasan Artifisial Aceh 202...
rahimah632
 
PDF
Modul Ajar Informatika Kelas 9 Deep Learning
Adm Guru
 
PDF
Modul Ajar B Inggris Kelas 7 Deep Learning
Adm Guru
 
PDF
Modul Ajar Informatika Kelas 7 Deep Learning
Adm Guru
 
PDF
Modul Ajar PAI Kelas 8 Deep Learning New
Adm Guru
 
PDF
Modul Ajar B Inggris Kelas 8 Deep Learning
Adm Guru
 
PDF
Modul Ajar IPA Kelas 9 Deep Learning Terbaru
Adm Guru
 
PDF
Modul Ajar B Indonesia Kelas 5 Deep Learning
Adm Guru
 
PPTX
Kritik dan Esai Sastra - MK Kritik Sastra IKIP Siliwangi
IKIP Siliwangi
 
PDF
Modul Ajar Ekonomi Kelas 10 Deep Learning
Adm Guru
 
PDF
MODUL PEMBELAJARAN DEEP LEARNING MATEMATIKA KELAS 6 CP 032 REVISI 2025 KURIKU...
AndiCoc
 
PDF
Materi Seminar AITalks: AI dan Roh Kudus
SABDA
 
PDF
KODE ETIK IIS.pdf apakah perilaku guru perlu diatur?
nadiridarul
 
PDF
Materi : MekanismePelatihanKoding_KA.pdf
NoorAfifah12
 
PDF
Modul Ajar PJOK Kelas 9 Deep Learning pdf
Adm Guru
 
PPTX
Menulis Karya Sastra I - Materi Pengantar Perkuliahan
IKIP Siliwangi
 
PDF
Modul Ajar PAI Kelas 7 Deep Learning New
Adm Guru
 
Modul Ajar Biologi Kelas 12 Deep Learning
Adm Guru
 
MODUL PEMBELAJARAN DEEP LEARNING PENDIDIKAN PANCASILA KELAS 6 CP 032 REVISI 2...
AndiCoc
 
MODUL PEMBELAJARAN DEEP LEARNING SENI RUPA KELAS 6 CP 032 REVISI 2025 KURIKUL...
AndiCoc
 
20250623 - Sosialisasi Pembelajaran Koding dan Kecerdasan Artifisial Aceh 202...
rahimah632
 
Modul Ajar Informatika Kelas 9 Deep Learning
Adm Guru
 
Modul Ajar B Inggris Kelas 7 Deep Learning
Adm Guru
 
Modul Ajar Informatika Kelas 7 Deep Learning
Adm Guru
 
Modul Ajar PAI Kelas 8 Deep Learning New
Adm Guru
 
Modul Ajar B Inggris Kelas 8 Deep Learning
Adm Guru
 
Modul Ajar IPA Kelas 9 Deep Learning Terbaru
Adm Guru
 
Modul Ajar B Indonesia Kelas 5 Deep Learning
Adm Guru
 
Kritik dan Esai Sastra - MK Kritik Sastra IKIP Siliwangi
IKIP Siliwangi
 
Modul Ajar Ekonomi Kelas 10 Deep Learning
Adm Guru
 
MODUL PEMBELAJARAN DEEP LEARNING MATEMATIKA KELAS 6 CP 032 REVISI 2025 KURIKU...
AndiCoc
 
Materi Seminar AITalks: AI dan Roh Kudus
SABDA
 
KODE ETIK IIS.pdf apakah perilaku guru perlu diatur?
nadiridarul
 
Materi : MekanismePelatihanKoding_KA.pdf
NoorAfifah12
 
Modul Ajar PJOK Kelas 9 Deep Learning pdf
Adm Guru
 
Menulis Karya Sastra I - Materi Pengantar Perkuliahan
IKIP Siliwangi
 
Modul Ajar PAI Kelas 7 Deep Learning New
Adm Guru
 

Tutorial perl programming ind ver

  • 2. A Basic Program Contoh : #!/usr/local/bin/perl # # Program to do the obvious # print 'Hello world.'; # Print a message Penjelasan : Baris Pertama Dalam bahasa Perl semua nya di awali dengan ini #!/usr/local/bin/perl walaupun ini mungkin berbeda dari sistem ke sistem. Baris ini memerintahkan mesin,apa yang harus dilakukan dengan file tersebut ketika dijalankan Comments and statements Comments bisa di masukkan ke program dengan symbol # dan yg lain nya di abaikan kecuali baris pertama Satu-satunya cara untuk meregangkan komentar dari beberapa baris adalah dengan menggunakan # pada setiap baris Segala sesuatu yang lain adalah pernyataan Perl yang harus diakhiri dengan titik koma, seperti baris terakhir di atas. Simple printing Fungsi cetak output beberapa informasi. Dalam kasus di atas ia akan mencetak string literal Hello world. dan tentu saja pernyataan diakhiri dengan titik koma.Qta dapat menemukan program di atas menghasilkan hasil yang sedikit tak terduga. Jadi, hal berikutnya yang harus dilakukan adalah dengan menjalankannya. Running The Program Ketik program contoh menggunakan editor teks, dan simpan. Emacs adalah editor yang baik untuk digunakan karena mempunyai modus sendiri Perl yang format baris baik ketika anda menekan tab (menggunakan `perl-mode Mx '). Tapi seperti biasa, gunakan mana yang Anda paling nyaman. Setelah telah memasukkan dan menyimpan program, pastikan file tersebut executable dengan menggunakan perintah chmod u+x progname
  • 3. di prompt UNIX, dimana progname adalah nama file program. Sekarang untuk menjalankan program ketik saja salah satu dari berikut pada prompt. perl progname ./progname progname Jika ada yang salah maka kita bisa mendapatkan pesan kesalahan, atau Anda mungkin mendapatkan sesuatu. Kita selalu dapat menjalankan program ini tanpa peringatan menggunakan perintah perl -w progname pada prompt. Ini akan menampilkan peringatan dan lainnya (mudah-mudahan) pesan membantu sebelum mencoba untuk menjalankan program. Untuk menjalankan program dengan debugger gunakan perintah perl -d progname Saat file dijalankan Perl pertama mengkompilasi dan kemudian menjalankan versi yang dikompilasi. Jadi setelah jeda singkat untuk kompilasi program harus berjalan cukup cepat. Ini juga menjelaskan mengapa kita bisa mendapatkan error kompilasi ketika kita mengeksekusi file Perl yang hanya terdiri dari teks. Pastikan program anda bekerja sebelum melanjutkan. Output program mungkin sedikit tak terduga - setidaknya tidak sangat cantik. Kita akan melihat berikutnya di variabel dan kemudian dasi ini dengan mencetak lebih cantik. Scalar Variable Jenis yang paling dasar dari variabel di Perl adalah variabel skalar. Variabel skalar memegang kedua string dan angka, dan yang luar biasa dalam string dan angka benar-benar saling dipertukarkan. Sebagai contoh, $priority = 9; set variabel skalar $ prioritas sampai 9, tetapi Anda juga dapat menetapkan string ke variabel yang sama persis: $priority = 'high'; Perl juga menerima nomor sebagai string, seperti ini: $priority = '9'; $default = '0009'; dan masih bisa mengatasi dengan aritmatika dan operasi lainnya. Dalam nama variabel umum terdiri dari angka, huruf dan garis bawah, tetapi mereka tidak harus mulai dengan nomor dan _ $ variabel adalah khusus, seperti yang akan kita lihat nanti. Juga, Perl adalah case sensitive, sehingga $ a dan $ A yang berbeda.
  • 4. Operation And Assignment Perl menggunakan semua operator aritmatika bahasa C: $a = 1 + 2; # Add 1 and 2 and store in $a $a = 3 - 4; # Subtract 4 from 3 and store in $a $a = 5 * 6; # Multiply 5 and 6 $a = 7 / 8; # Divide 7 by 8 to give 0.875 $a = 9 ** 10; # Nine to the power of 10 $a = 5 % 2; # Remainder of 5 divided by 2 ++$a; # Increment $a and then return it $a++; # Return $a and then increment it --$a; # Decrement $a and then return it $a--; # Return $a and then decrement it Dan untuk string Perl di antara nya seperti ini $a = $b . $c; # Concatenate $b and $c $a = $b x $c; # $b repeated $c times Untuk menetapkan nilai Perl $a = $b; # Assign $b to $a $a += $b; # Add $b to $a $a -= $b; # Subtract $b from $a $a .= $b; # Append $b onto $a Perhatikan bahwa ketika Perl memberikan nilai dengan $ a = $ b itu membuat salinan dari $ b dan kemudian menetapkan bahwa untuk $ a. Oleh karena itu waktu berikutnya Anda mengubah b $ itu tidak akan mengubah $ a. Operator lain yang bisa ditemukan pada halaman manual perlop. Tipe pria perlop pada prompt. Interpolation Kode berikut mencetak menggunakan concatenation: $a = 'apples'; $b = 'pears'; print $a.' and '.$b; Akan lebih baik untuk menyertakan hanya satu string dalam laporan cetak akhir, tetapi garis print '$a and $b'; mencetak harfiah $ a dan $ b yang tidak sangat membantu. Sebaliknya, kita dapat menggunakan tanda kutip ganda di tempat tanda kutip tunggal: print "$a and $b";
  • 5. Tanda kutip ganda kekuatan interpolasi dari setiap kode, termasuk variabel menafsirkan. Ini adalah jauh lebih bagus daripada pernyataan asli kami. Kode lain yang diinterpolasi menyertakan karakter khusus seperti baris baru dan tab. Kode n adalah baris baru dan t adalah tab. Exercise Latihan ini adalah untuk menulis ulang program Halo dunia sehingga (a) string ditugaskan untuk variabel dan (b) variabel ini kemudian dicetak dengan karakter baris baru. Gunakan tanda kutip ganda dan tidak menggunakan operator concatenation.. Array Variables variabel array yang merupakan daftar skalar (yaitu angka dan string). Variabel Array memiliki format yang sama sebagai variabel skalar kecuali bahwa mereka diawali oleh simbol @. Pernyataan : @food = ("apples", "pears", "eels"); @music = ("whistle", "flute"); memberikan daftar tiga elemen pada variabel array makanan @ dan dua daftar elemen pada variabel array @ musik. Array diakses dengan menggunakan indeks dimulai dari 0, dan tanda kurung siku digunakan untuk menentukan indeks. $food[2] Perhatikan bahwa @ telah berubah menjadi $ karena scalar Array assignments dalam semua Perl, ekspresi yang sama dalam konteks yang berbeda dapat menghasilkan hasil yang berbeda. Penugasan pertama di bawah meledak variabel musik @ sehingga setara dengan tugas kedua. @moremusic = ("organ", @music, "harp"); @moremusic = ("organ", "whistle", "flute", "harp"); Hal ini seharusnya menyarankan cara menambahkan elemen ke array. Cara yang lebih rapi menambahkan elemen adalah dengan menggunakan pernyataan push(@food, "eggs"); yang mendorong eggs ke akhir array @ food. Untuk mendorong dua atau lebih item ke salah satu penggunaan array dalam bentuk sebagai berikut: push(@food, "eggs", "lard"); push(@food, ("eggs", "lard")); push(@food, @morefood); Fungsi mendorong mengembalikan panjang daftar baru.
  • 6. Untuk menghapus item terakhir dari daftar dan mengembalikannya menggunakan fungsi pop. Dari daftar asli kita fungsi kembali pop eels dan @ food sekarang memiliki dua elemen: $grub = pop(@food); # Now $grub = "eels" Hal ini juga memungkinkan untuk menetapkan array ke sebuah variabel skalar. Seperti biasa konteks adalah penting. $f = @food; memberikan panjang @food, tapi $f = "@food"; mengubah daftar ke dalam string dengan spasi di antara setiap elemen. Ruang ini bisa digantikan oleh string lain dengan mengubah nilai dari variabel $ khusus ". Variabel ini hanyalah salah satu dari banyak variabel Perl khusus, yang sebagian besar memiliki nama aneh. Array juga dapat digunakan untuk membuat beberapa tugas untuk variabel skalar: ($a, $b) = ($c, $d); # Same as $a=$c; $b=$d; ($a, $b) = @food; # $a and $b are the first two # items of @food. ($a, @somefood) = @food; # $a is the first item of @food # @somefood is a list of the # others. (@somefood, $a) = @food; # @somefood is @food and # $a is undefined. karena array serakah, dan @ somefood akan menelan sebanyak @food. Oleh karena itu sebaiknya dihindari. Anda mungkin ingin mencari indeks dari elemen terakhir dari daftar. Untuk melakukan ini untuk array @food menggunakan expression $#food Displaying Arrays Karena konteks begitu penting, tidak mengejutkan kalau memiliki banyak procedure dengan hasil yang berbeda-beda print @food; # By itself print "@food"; # Embedded in double quotes print @food.""; # In a scalar context
  • 7. File Handling Berikut adalah program perl dasar yang tidak sama dengan perintah cat UNIX pada file tertentu. #!/usr/local/bin/perl # # Program to open the password file, read it in, # print it, and close it again. $file = '/etc/passwd'; # Name the file open(INFO, $file); # Open the file @lines = <INFO>; # Read it into an array close(INFO); # Close the file print @lines; # Print the array Fungsi buka membuka file untuk input (yaitu untuk membaca). Parameter pertama adalah filehandle yang memungkinkan Perl untuk mengacu ke file di masa depan. Parameter kedua adalah ungkapan yang menunjukkan nama file. Jika nama file diberikan dalam tanda kutip maka diambil harfiah tanpa ekspansi shell. Jadi ungkapan '~ / catatan / todolist' tidak akan diinterpretasikan dengan sukses. Jika Anda ingin memaksa ekspansi shell kemudian gunakan tanda kurung siku: yaitu, gunakan <~ / catatan / todolist> gantinya. Fungsi dekat memberitahu Perl untuk menyelesaikan dengan file tersebut. Ada beberapa poin yang berguna untuk menambah ini diskusi tentang filehandling. Pertama, pernyataan terbuka juga dapat menentukan sebuah file untuk output dan untuk menambahkan serta masukan. Untuk melakukan hal ini, prefiks nama file dengan> untuk output dan>> untuk menambahkan: open(INFO, $file); # Open for input open(INFO, ">$file"); # Open for output open(INFO, ">>$file"); # Open for appending open(INFO, "<$file"); # Also open for input Kedua, jika Anda ingin mencetak sesuatu ke file Anda telah dibuka untuk output maka anda dapat menggunakan pernyataan print dengan parameter tambahan. Untuk mencetak string ke file dengan menggunakan filehandle INFO print INFO "This line goes to the file.n"; Ketiga, Anda dapat menggunakan berikut untuk membuka standard input (biasanya keyboard) dan output standar (biasanya layar) masing-masing: open(INFO, '-'); # Open standard input open(INFO, '>-'); # Open standard output
  • 8. Dalam program di atas informasi yang dibaca dari file. File adalah file INFO dan untuk membaca dari itu Perl menggunakan kurung siku. Jadi pernyataan @lines = <INFO>; membaca file dinotasikan dengan filehandle ke dalam array @ lines. Perhatikan bahwa ungkapan <INFO> membaca di file seluruhnya. Hal ini karena membaca terjadi dalam konteks variabel array. Jika @ lines digantikan oleh scalar $ Lines maka hanya satu baris berikutnya akan dibaca masuk Dalam salah kasus setiap baris disimpan lengkap dengan karakter baris baru nya di akhir. Control Structure Perl banyak mendukung berbagai jenis struktur kontrol yang cenderung seperti di C, tetapi sangat mirip dengan Pascal, juga. Di sini kita membahas beberapa dari mereka. Foreach Untuk pergi melalui setiap baris array atau struktur daftar-seperti lainnya (seperti baris dalam file) Perl menggunakan struktur foreach. foreach $morsel (@food) # Visit each item in turn # and call it $morsel { print "$morseln"; # Print the item print "Yum yumn"; # That was nice } Tindakan yang harus dilakukan setiap kali yang tertutup di sebuah blok kurung kurawal. Pertama kali melalui blok $morsel ditetapkan nilai dari item pertama dalam array @ food. Kali ini diberi nilai dari item kedua, dan seterusnya sampai akhir. Jika @ food kosong untuk memulai dengan maka blok pernyataan di bawah ini tidak pernah dijalankan. Testing The next few structures rely on a test being true or false. In Perl any non-zero number and non-empty string is counted as true. The number zero, zero by itself in a string, and the empty string are counted as false. Here are some tests on numbers and strings. $a == $b # Is $a numerically equal to $b? # Beware: Don't use the = operator. $a != $b # Is $a numerically unequal to $b? $a eq $b # Is $a string-equal to $b? $a ne $b # Is $a string-unequal to $b?
  • 9. Anda juga dapat menggunakan logical and, atau and not ($a && $b) # Is $a and $b true? ($a || $b) # Is either $a or $b true? !($a) # is $a false? For Perl memiliki untuk struktur yang meniru C. for (initialise; test; inc) { first_action; second_action; etc } Pertama dari semua pernyataan menginisialisasinya untuk dijalankan.Kemudian blok tindakan dijalankan. Setelah setiap kali blok dilaksanakan inc terjadi. Berikut adalah contoh untuk loop untuk mencetak angka 0 sampai 9. for ($i = 0; $i < 10; ++$i) # Start with $i = 1 # Do it while $i < 10 # Increment $i before repeating { print "$in"; } While And Until Berikut ini adalah sebuah program yang membaca input beberapa dari keyboard dan tidak akan berlanjut sampai itu adalah password yang benar #!/usr/local/bin/perl print "Password? "; # Ask for input $a = <STDIN>; # Get input chop $a; # Remove the newline at end while ($a ne "fred") # While input is wrong... { print "sorry. Again? "; # Ask again $a = <STDIN>; # Get input again chop $a; # Chop off newline again } kode dijalankan sementara input tidak sama dengan password. Struktur sementara harus cukup jelas, tapi ini adalah kesempatan untuk melihat beberapa hal. Pertama, kita dapat kita baca dari standard input (keyboard) tanpa membuka file yang pertama. Kedua, ketika sandi dimasukkan $ a diberi nilai termasuk karakter baris baru di akhir. Fungsi memotong menghapus karakter terakhir dari string yang dalam hal ini adalah baris baru.
  • 10. Untuk menguji hal sebaliknya kita bisa menggunakan sampai pernyataan hanya dalam cara yang sama. Ini mengeksekusi blok berulang kali sampai ekspresi bernilai true. Yang bermanfaat lainya adalah menempatkan while atau until cek pada akhir blok pernyataan daripada di awal. Ini akan membutuhkan kehadiran operator untuk menandai awal blok dan uji di akhir. Sekali lagi pesan dalam program password di atas maka dapat ditulis seperti ini. #!/usr/local/bin/perl do { "Password? "; # Ask for input $a = <STDIN>; # Get input chop $a; # Chop off newline } while ($a ne "fred") # Redo while wrong input Conditionals Tentu saja Perl juga memungkinkan if/ then / else statements. if ($a) { print "The string is not emptyn"; } else { print "The string is emptyn"; } Untuk ini, ingatlah bahwa sebuah string kosong dianggap false. Hal ini juga akan memberikan "empty" terjadi jika $ a adalah string 0.Hal ini juga memungkinkan untuk menyertakan lebih banyak alternatif dalam sebuah pernyataan bersyarat: if (!$a) # The ! is the not operator { print "The string is emptyn"; } elsif (length($a) == 1) # If above fails, try this { print "The string has one charactern"; } elsif (length($a) == 2) # If that fails, try this { print "The string has two charactersn"; } else # Now, everything has failed { print "The string has lots of charactersn"; }
  • 11. Dalam hal ini, penting untuk memperhatikan bahwa pernyataan else if benar-benar memiliki "e" yang hilang. String Matching Salah satu fitur yang paling berguna dari Perl (jika tidak fitur yang paling berguna) adalah fasilitas string manipulasi nya kuat. Di jantung ini adalah ekspresi reguler (RE) yang dibagi oleh banyak utilitas UNIX lainnya. Reguler Expression Ekspresi reguler terkandung dalam garis miring, dan mencocokkan terjadi dengan operator ~ =. Ungkapan berikut ini benar jika string muncul dalam variabel $ setence. $sentence =~ /the/ RE adalah case sensitive, jadi $sentence = "The quick brown fox"; maka match di atas akan false. Operator! ~ digunakan untuk bercak Non Match. Pada contoh di atas $sentence !~ /the/ benar karena string tidak muncul di $sentence The $_ special variable Kali ini kita akan menggunakan Conditional sebagai if ($sentence =~ /under/) { print "We're talking about rugbyn"; } Ini akan mencetak pesan jika kita memasuk kan code berikut ini $sentence = "Up and under"; $sentence = "Best winkles in Sunderland"; Tetapi akan lebih mudah jika kita memberikan kalimat tersebut pada variabel khusus $which, tentu saja scalar. Jika kita melakukan hal ini maka kita bisa menghindari penggunaan match dan operator non-match dan di atas dapat ditulis hanya sebagai
  • 12. if (/under/) { print "We're talking about rugbyn"; } $ Variabel adalah bentuk default untuk operasi Perl, banyak dan cenderung akan digunakan More on REs Dalam sebuah RE ada banyak karakter khusus, dan inilah yang baik memberikan kekuasaan mereka dan membuat mereka terlihat sangat rumit. Yang terbaik untuk membangun penggunaan Res perlahan; penciptaan mereka dapat menjadi sesuatu dari sebuah bentuk seni. Berikut adalah beberapa Re karakter khusus dan maknanya . # Any single character except a newline ^ # The beginning of the line or string $ # The end of the line or string * # Zero or more of the last character + # One or more of the last character ? # Zero or one of the last character dan di sini adalah contoh beberapa matching. Ingat yang harus dilampirkan dalam garis miring /.../ untuk digunakan. t.e # t followed by anthing followed by e # This will match the # tre # tle # but not te # tale ^f # f at the beginning of a line ^ftp # ftp at the beginning of a line e$ # e at the end of a line tle$ # tle at the end of a line und* # un followed by zero or more d characters # This will match un # und # undd # unddd (etc) .* # Any string without a newline. This is because # the . matches anything except a newline and # the * means zero or more of these. ^$ # A line with nothing in it. Ada lebih banyak pilihan. Square kurung digunakan untuk mencocokkan salah satu karakter di dalamnya. Di dalam kurung persegi - menunjukkan "antara " dan sebuah ^ pada mulanya berarti "tidak":
  • 13. [qjk] # Either q or j or k [^qjk] # Neither q nor j nor k [a-z] # Anything from a to z inclusive [^a-z] # No lower case letters [a-zA-Z] # Any letter [a-z]+ # Any non-zero sequence of lower case letters Pada titik ini Anda mungkin dapat melompat ke akhir dan melakukan setidaknya sebagian besar latihan. Sisanya sebagian besar hanya untuk referensi. Sebuah bar vertikal | merupakan "atau" dan tanda kurung (...) dapat digunakan untuk hal-hal grup bersama: jelly|cream # Either jelly or cream (eg|le)gs # Either eggs or legs (da)+ # Either da or dada or dadada or... Dan ini adalah bentuk special char nya n # A newline t # A tab w # Any alphanumeric (word) character. # The same as [a-zA-Z0-9_] W # Any non-word character. # The same as [^a-zA-Z0-9_] d # Any digit. The same as [0-9] D # Any non-digit. The same as [^0-9] s # Any whitespace character: space, # tab, newline, etc S # Any non-whitespace character b # A word boundary, outside [] only B # No word boundary Jelas karakter seperti $, |, [,), , / dan seterusnya adalah kasus-kasus aneh dalam ekspresi reguler. Jika Anda ingin cocok untuk salah satu dari mereka maka Anda harus mendahului itu dengan backslash. Jadi: | # Vertical bar [ # An open square bracket ) # A closing parenthesis * # An asterisk ^ # A carat symbol / # A slash # A backslash
  • 14. Beberapa contoh dari RE [01] # Either "0" or "1" /0 # A division by zero: "/0" / 0 # A division by zero with a space: "/ 0" /s0 # A division by zero with a whitespace: # "/ 0" where the space may be a tab etc. / *0 # A division by zero with possibly some # spaces: "/0" or "/ 0" or "/ 0" etc. /s*0 # A division by zero with possibly some # whitespace. /s*0.0* # As the previous one, but with decimal # point and maybe some 0s after it. Accepts # "/0." and "/0.0" and "/0.00" etc and # "/ 0." and "/ 0.0" and "/ 0.00" etc. Substitution And Translation Serta mengidentifikasi ekspresi reguler Perl dapat membuat substitusi berdasarkan pertandingan tersebut. Cara untuk melakukan ini adalah dengan menggunakan fungsi yang dirancang untuk meniru cara substitusi dilakukan dalam editor teks vi. Sekali lagi operator pertandingan yang digunakan, dan sekali lagi jika dihilangkan maka substitusi diasumsikan berlangsung dengan $Variable. Untuk mengganti terjadinya london oleh London pada string kalimat $ kita menggunakan ungkapan $sentence =~ s/london/London/ dan untuk melakukan hal yang sama dengan $ variabel, hanya s/london/London/ Perhatikan bahwa dua ekspresi reguler (london dan London) yang dikelilingi oleh total tiga garis miring. Hasil dari ungkapan ini adalah jumlah substitusi dibuat, sehingga sangat baik 0 (false) atau 1 (true) dalam kasus ini.
  • 15. Options Contoh ini hanya mengganti terjadinya string pertama, dan mungkin bahwa akan ada lebih dari satu string seperti kita ingin mengganti. Untuk membuat substitusi global slash terakhir diikuti oleh a g sebagai berikut: s/london/London/g which terntu saja bisa digunakan dalam $Variable. Sekali lagi ekspresi mengembalikan jumlah substitusi dibuat, yang adalah 0 (false) atau sesuatu yang lebih besar dari 0 (benar). Jika kita ingin juga mengganti lOndon, lonDON, LoNDoN dan sebagainya maka kita bisa menggunakan s/[Ll][Oo][Nn][Dd][Oo][Nn]/London/g tetapi cara yang lebih mudah adalah dengan menggunakan opsi i (untuk "abaikan"). Ekspresi s/london/London/gi akan membuat substitusi global mengabaikan kasus. Pilihan i juga digunakan dalam /.../ regular expression match. Remembering Paterns Ini sering berguna untuk mengingat pola-pola yang telah cocok sehingga mereka dapat digunakan lagi. Kebetulan bahwa apa pun yang cocok dalam kurung akan dikenang dalam variabel $ 1,...,$ 9. String ini juga dapat digunakan dalam ekspresi reguler yang sama (atau substitusi) dengan menggunakan kode-kode khusus RE 1,..., 9. Misalnya $_ = "Lord Whopper of Fibbing"; s/([A-Z])/:1:/g; print "$_n"; akan menggantikan setiap huruf huruf besar oleh surat dikelilingi oleh titik dua. Ini akan mencetak: L: Ord: W: hopper dari: F: ibbing. Variabel Variabel $ 1,...,$ 9 adalah read-only Contoh lain nya if (/(b.+b) 1/) { print "Found $1 repeatedn"; } akan mengidentifikasi kata-kata diulang. Setiap b mewakili batas kata dan + cocok setiap string yang tidak kosong., jadi b. + b match apapun antara dua batas kata. Ini kemudian diingat oleh tanda kurung dan disimpan sebagai 1 untuk ekspresi reguler dan sebagai $ 1 untuk seluruh program.
  • 16. Berikut swap karakter pertama dan terakhir dari garis dalam variabel s/^(.)(.*)(.)$/321/ The ^ dan $ match awal dan akhir baris. Menyimpan kode 1 karakter pertama, sedangkan 2 kode menyimpan segala sesuatu yang lain sampai karakter terakhir yang disimpan dalam kode 3. Kemudian bahwa seluruh baris diganti dengan 1 dan 3 Setelah matching, qta dapat menggunakan variabel read-only khusus $ `dan $ & dan $ 'untuk menemukan apa yang cocok sebelum, selama dan setelah pencarian. Jadi setelah. $_ = "Lord Whopper of Fibbing"; /pp/; Akhirnya pada subjek pola mengingat hal itu layak mengetahui bahwa dalam garis miring dari sebuah pertandingan atau beberapa variabel substitusi yang diinterpolasi. Jadi $search = "the"; s/$search/xxx/g; akan menggantikan dengan xxx. Jika untuk mengganti maka kita tidak dapat melakukan s / $ searchre / xxx / karena ini akan diinterpolasi sebagai searchre $ variabel. Sebaliknya kita harus meletakkan nama variabel dalam kurung kurawal sehingga kode menjadi $search = "the"; s/${search}re/xxx/;
  • 17. SPLIT Sebuah fungsi yang sangat berguna di Perl, yang terbagi atas string dan tempat ke dalam array. Fungsi menggunakan ekspresi reguler dan sebagai karya biasa pada variabel _ $ kecuali ditentukan Split Fuction digunakan seperti ini : $info = "Caine:Michael:Actor:14, Leafy Drive"; @personal = split(/:/, $info); Memiliki effect keseluruhan yg sama, seperti @personal = ("Caine", "Michael", "Actor", "14, Leafy Drive"); Jika kita memiliki informasi yang disimpan dalam variabel $ _ maka kita hanya bisa menggunakan ini @personal = split(/:/); Jika bidang yang dibagi oleh jumlah titik dua maka kita dapat menggunakan kode RE untuk mendapatkan pembulatan code $_ = "Capes:Geoff::Shot putter:::Big Avenue"; @personal = split(/:+/); Bisa juga kayak gini @personal = ("Capes", "Geoff", "Shot putter", "Big Avenue"); Tapi yang ini $_ = "Capes:Geoff::Shot putter:::Big Avenue"; @personal = split(/:/); Akan menjadi seperti ini @personal = ("Capes", "Geoff", "", "Shot putter", "", "", "Big Avenue"); Sebuah kata dapat dibagi ke dalam karakter, split kalimat menjadi kata-kata dan paragraf dibagi menjadi kalimat: @chars = split(//, $word); @words = split(/ /, $sentence); @sentences = split(/./, $paragraph); Dalam kasus pertama string nol cocok antara karakter masing-masing, dan itulah sebabnya array karakter @ adalah array karakter - yaitu sebuah array dari string dengan panjang 1.
  • 18. Associative Arrays Daftar array biasa memungkinkan kita untuk mengakses elemen mereka dengan nomor. Elemen pertama dari array makanan adalah $ makanan @ [0]. Elemen kedua adalah $ makanan [1], dan seterusnya. Tetapi Perl juga memungkinkan kita untuk membuat array yang diakses oleh string. Ini disebut array asosiatif. Untuk mendefinisikan sebuah array asosiatif kita menggunakan notasi kurung biasa, tapi array itu sendiri diawali dengan tanda%. Misalkan kita ingin membuat sebuah array orang dan usia mereka. Ini akan terlihat seperti ini: %ages = ("Michael Caine", 39, "Dirty Den", 34, "Angie", 27, "Willy", "21 in dog years", "The Queen Mother", 108); Sekarang kita dapat menemukan usia seseorang dengan ekspresi berikut $ages{"Michael Caine"}; # Returns 39 $ages{"Dirty Den"}; # Returns 34 $ages{"Angie"}; # Returns 27 $ages{"Willy"}; # Returns "21 in dog years" $ages{"The Queen Mother"}; # Returns 108 Perhatikan bahwa setiap daftar seperti array tanda% telah berubah menjadi $ untuk mengakses sebuah elemen tertentu karena unsur yang skalar. Tidak seperti array daftar indeks (dalam hal ini nama orang) terlampir dalam kurung kurawal, gagasan bahwa array asosiatif yang lebih bagus dari array daftar. Array asosiatif dapat dikonversi kembali ke dalam array daftar hanya dengan menugaskan ke variabel array daftar. Sebuah array daftar dapat dikonversi menjadi array asosiatif dengan menugaskan ke variabel array asosiatif. Idealnya array daftar akan memiliki bahkan jumlah elemen: @info = %ages; # @info is a list array. It # now has 10 elements $info[5]; # Returns the value 27 from # the list array @info %moreages = @info; # %moreages is an associative # array. It is the same as %ages
  • 19. Operator Array asosiatif tidak memiliki untuk elemen (mereka seperti tabel hash) tetapi apakah itu mungkin untuk mengakses semua elemen pada gilirannya menggunakan fungsi tombol dan fungsi nilai-nilai: foreach $person (keys %ages) { print "I know the age of $personn"; } foreach $age (values %ages) { print "Somebody is $agen"; } Ketika kunci disebut ia mengembalikan daftar kunci (indeks) dari array asosiatif. Ketika nilai-nilai disebut mengembalikan daftar dari nilai-nilai dari array. Fungsi-fungsi kembali daftar mereka dalam urutan yang sama, tapi urutan ini tidak ada hubungannya dengan urutan elemen telah dimasukkan.Ketika kunci dan nilai disebut dalam konteks skalar mereka kembali jumlah kunci / pasangan nilai dalam array asosiatif. Ada juga setiap fungsi yang mengembalikan daftar dua unsur kunci dan nilainya. Setiap kali each disebut mengembalikan kunci lain / pasangan nilai: while (($person, $age) = each(%ages)) { print "$person is $agen"; }
  • 20. Subroutines Bahasa Program Perl memungkinkan pengguna untuk menentukan fungsi mereka sendiri, yang disebut Subroutines. Mereka mungkin ditempatkan di manapun dalam program Anda, tetapi mungkin lebih baik untuk menempatkan mereka semua di awal atau semua di akhir. sub mysubroutine { print "Not a very interesting routinen"; print "This does the same thing every timen"; } terlepas dari setiap parameter yang mungkin kita lewati. Semua ini akan bekerja untuk memanggil Subroutines . Perhatikan bahwa Subroutines disebut dengan karakter & di depan nama: &mysubroutine; # Call the subroutine &mysubroutine($_); # Call it with a parameter &mysubroutine(1+2, $_); # Call it with two parameters Parameters Dalam kasus di atas parameter yang diterima tetapi diabaikan. Ketika Subroutines disebut parameter apapun dikirimkan sebagai daftar dalam variabel array yang daftar khusus @ _. Variabel ini sama sekali tidak ada hubungannya dengan variabel skalar $ _. Para Subroutines berikut hanya mencetak daftar itu disebu. Hal ini diikuti oleh beberapa contoh penggunaannya. sub printargs { print "@_n"; } &printargs("perly", "king"); # Example prints "perly king" &printargs("frog", "and", "toad"); # Prints "frog and toad" Sama seperti setiap array daftar lainnya unsur-unsur individual dari @ _ dapat diakses dengan square bracket notation sub printfirsttwo { print "Your first argument was $_[0]n"; print "and $_[1] was your secondn"; } Sekali lagi harus ditekankan bahwa di indek skalar $ _ [0] dan $ _ [1] dan sebagainya telah ada dengan skalar $ _ yang juga dapat digunakan tanpa takut crash.
  • 21. Returning Values Subroutines selalu dievaluasi di akhir. Subroutines ini mengembalikan maksimal dua parameter masukan. Sebuah contoh penggunaannya berikut. sub maximum { if ($_[0] > $_[1]) { $_[0]; } else { $_[1]; } } $biggest = &maximum(37, 24); # Now $biggest is 37 Para & printfirsttwo Subroutines di atas juga mengembalikan nilai, dalam hal ini 1. Ini karena hal terakhir yang s Subroutines lakukan adalah pernyataan cetak dan hasil dari pernyataan cetak yang sukses adalah selalu 1. Local Variable Local Variable Subroutines, dan jadi tentu saja adalah $ _ [0], $ _ [1], $ _ [2], dan seterusnya. Variabel lain dapat dibuat lokal juga, dan ini berguna jika kita ingin memulai mengubah parameter masukan. Tes Subroutines berikut untuk melihat apakah ada di dalam satu string lain. sub inside { local($a, $b); # Make local variables ($a, $b) = ($_[0], $_[1]); # Assign values $a =~ s/ //g; # Strip spaces from $b =~ s/ //g; # local variables ($a =~ /$b/ || $b =~ /$a/); # Is $b inside $a # or $a inside $b? } &inside("lemon", "dole money"); # true Pada kenyataannya, bahkan bisa merapikan dengan mengganti dua baris pertama dengan local($a, $b) = ($_[0], $_[1]);
  • 22. Tutorial Bahasa Programm Perl Full Part Thanx’s to : Whitehat Wenkhairu Cyberheb Scifix Prabujoyoboyo Darkslayers Shamus ./Blacknotes Also Thanx’s to : All Member Of Antijasakom All Member Of Devilzc0de All Member Of Jasakom All Member Of Jatim Crew