ในบทความนี้ผมจะยกตัวอย่างการเขียน sub ขึ้นมาเพื่อทำการเรียงค่าในอะเรย์ทั้งจากน้อยไปมากและจากมากไปน้อย ซึ่งจะใช้วิธีการเรียงแบบ Bubble Sort เราลองไปดูตัวอย่างการเขียน sub ขึ้นมากันเลยครับ พร้อมทั้งวิธีการเรียกใช้ด้วย
#!usr/bin/perl
sub BubbleSort {
my ($sortby, @arr) = @_;
if ($sortby eq "desc") {
for ($i = 0; $i < $#arr; $i++) {
for ($j = 0; $j < $#arr; $j++) {
if ($arr[$j] < $arr[$j+1]) {
$tmp = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
} else {
for ($i = 0; $i < $#arr; $i++) {
for ($j = 0; $j < $#arr; $j++) {
if ($arr[$j] > $arr[$j+1]) {
$tmp = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
}
return @arr;
}
<?php
#!usr/bin/perl
@arr = (2, 5, 1, 3, 4, 8, 10);
@arr = &BubbleSort("asc", @arr);
print @arr ;
print "\n";
@arr = &BubbleSort("desc", @arr);
print @arr;
?>
Login
Search