بسم الله الرحمن الرحيم
من الدوال التي اعجبتني بشدة في لغة php هي دالة explode وهي دالة تقوم بتقسيم string على حسب محدد انت تختاره ثم تعيده في مصفوفة ولكنني للاسف لما احتجتها في perl لم اجدها بحثت بعض الشيئ فوجدت ان هناك باكيج خاص بها وهدا لم يحفزني على استخدام الباكج لاننا عادة لا نعرف ما الدي يوجدعند المستخدم لهدا قررت برمجة دالة explode على perl وهاهي وامل ان تحل مشاكل من واجه نفس مشكلتي
هناك دوال مساعدة لدالة explode
وهدا شرح بسيط
السكريبت اعلاه يوضح استخدام الدالة فلقد مررت لها جملة Linux is free but windows is not free !! Owch والمحدد هو كلمة free واخيرا جعلت المصفوفة string تستقبل ما تعيده الدالة فلو طبعنا
فسوف تكون النتيجة Linux is ولو طبعنا
فسوف تكون but windows is not وهكدا.
من الدوال التي اعجبتني بشدة في لغة php هي دالة explode وهي دالة تقوم بتقسيم string على حسب محدد انت تختاره ثم تعيده في مصفوفة ولكنني للاسف لما احتجتها في perl لم اجدها بحثت بعض الشيئ فوجدت ان هناك باكيج خاص بها وهدا لم يحفزني على استخدام الباكج لاننا عادة لا نعرف ما الدي يوجدعند المستخدم لهدا قررت برمجة دالة explode على perl وهاهي وامل ان تحل مشاكل من واجه نفس مشكلتي
كود PHP:
sub explode{
my $j=0;
my $str=$_[0];
my $sep=$_[1];
my @tmp = split(//,$sep);
my $len = @tmp;
my $rt='';
my @string = split(//,$str);
my $strnum = @string;
my @rtarray;
for(my $i=0;$i<$strnum;$i++){
$rt .=$string[$i];
if((word($rt,$sep)) == 1){
$rtarray[$j]=jst($rt,$len);
$rt ='';
$j++;
}
}
if($j==0){
$rtarray[$j]=$rt;
}
else{
$rtarray[$j]=$rt;
}
return @rtarray;
}
sub word(){
my $st = $_[0];
my $sp = $_[1];
if($st =~ /$sp/){
return 1;
}
else{
return 0;
}
}
sub jst(){
my $i=0;
my $str = $_[0];
my $le = $_[1];
my @array = split(//,$str);
my $l1 = @array;
my $len = $l1 - $le;
my $rt = '';
for($i=0;$i<$len;$i++){
$rt .= $array[$i];
}
return $rt;
}
وهدا شرح بسيط
كود PHP:
#!/usr/bin/perl
$dt="Linux is free but windows is not free !! Owch";
$dg="free";
@string = explode($dt,$dg);
print $string[0];
print "\n";
print $string[1];
sub explode{
my $j=0;
my $str=$_[0];
my $sep=$_[1];
my @tmp = split(//,$sep);
my $len = @tmp;
my $rt='';
my @string = split(//,$str);
my $strnum = @string;
my @rtarray;
for(my $i=0;$i<$strnum;$i++){
$rt .=$string[$i];
if((word($rt,$sep)) == 1){
$rtarray[$j]=jst($rt,$len);
$rt ='';
$j++;
}
}
if($j==0){
$rtarray[$j]=$rt;
}
else{
$rtarray[$j]=$rt;
}
return @rtarray;
}
sub word(){
my $st = $_[0];
my $sp = $_[1];
if($st =~ /$sp/){
return 1;
}
else{
return 0;
}
}
sub jst(){
my $i=0;
my $str = $_[0];
my $le = $_[1];
my @array = split(//,$str);
my $l1 = @array;
my $len = $l1 - $le;
my $rt = '';
for($i=0;$i<$len;$i++){
$rt .= $array[$i];
}
return $rt;
}
كود PHP:
$string[0]
كود PHP:
$string[1]
فسوف تكون but windows is not وهكدا.