Even though I have been a PHP programmer for 4 years or so now, I still discover new things every day. While looking at different ways to split strings based on regular expressions I learned an important lesson.
explode() isn’t the same as split()!
Since I learned Perl before PHP, I prefer using split() and join() instead of explode() and implode(), respectively. To my surprise, split() is not an alias of explode() while join() is an alias of implode(). Almost since I started using PHP, I have used been using Perl syntax for these functions, thinking they were just aliases of their PHP equivalents.
The biggest difference is explode() takes a delimiter to split by, while split() takes a regular expression. This means that explode() is going to execute faster. Also, the PHP documentation says that preg_split() is faster than split(), so really there isn’t much of a reason to use split() at all.
How will the following PHP code look like in PERL?
Code:
foreach ($arrResults as $result)
{
print_r(explode(’||’, $result));
echo(”");
}
=======================
This is what I have, but it’s not working.
Code:
@result_array = $result;
foreach $line ( @result_array )
{
$line2 = split(’\|\|’, $line);
print “$line2\n”;
}
@result_array = (”haha||hoho”, “mama||papa”, “qwer||asdf”);
foreach ( @result_array ) {
print split(/\|\|/, $_), “\n”;
}