This may or may not achieve your goal. It works for your test data and a few others I have tried but it is by no means fully tested. Whether you would want to retain the standard split functionality as part of this sub is doubtful, but it's there should you prefer to use a single function in all cases.
Update: A slightly cleaner version, removed unused var and standard split functionality.
#! perl -slw use strict; sub mySplit { my ($pattern, $expr) = @_; push @$pattern, '$', ''; my ($n, @fields) = (0); push @fields, $1 while $expr =~ /(.*?)$pattern->[$n]/gc, ++$n < @$ +pattern; return @fields; } my $string = "a:b::c d|e"; my @fields = mySplit [':','::','\s+','\|'], $string; print do{local $"='~'; "@fields";} #" __DATA__ C:\test>218685 a~b~c~d~e
Okay you lot, get your wings on the left, halos on the right. It's one size fits all, and "No!", you can't have a different color.
Pick up your cloud down the end and "Yes" if you get allocated a grey one they are a bit damp under foot, but someone has to get them.
Get used to the wings fast cos its an 8 hour day...unless the Govenor calls for a cyclone or hurricane, in which case 16 hour shifts are mandatory.
Just be grateful that you arrived just as the tornado season finished. Them buggers are real work.
In reply to Re: expanding the functionality of split
by BrowserUk
in thread expanding the functionality of split
by tigervamp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |