ovedpo15 has asked for the wisdom of the Perl Monks concerning the following question:
Consider that following string: a,b,c,d,e,f
this string has 6 substrings and 5 commas between them. each one of the substrings can contain whatever symbol there is. At the end I would like to split it like this:
my ($a,$b,$c,$d,$e,$f) = split(/,/ $string);
But first I would like to check that this string is valid meaning there is a substring between the commas.
I can use like this: if(!defined($a) || !defined($b) || ... || !defined($f)) ...
but it doesn't look very good and it's too long. I would like somehow to check it with split or regex.
I also tried to use if(($string =~ tr/,//) != 5) ... but it isn't a good idea because I won't catch the "a,b,c,d,,f" case or if the one of the substrings will conatine a comma (for example: $b = "hello_world,bye";)
this string has 6 substrings and 5 commas between them. each one of the substrings can contain whatever symbol there is. At the end I would like to split it like this:
my ($a,$b,$c,$d,$e,$f) = split(/,/ $string);
But first I would like to check that this string is valid meaning there is a substring between the commas.
I can use like this: if(!defined($a) || !defined($b) || ... || !defined($f)) ...
but it doesn't look very good and it's too long. I would like somehow to check it with split or regex.
I also tried to use if(($string =~ tr/,//) != 5) ... but it isn't a good idea because I won't catch the "a,b,c,d,,f" case or if the one of the substrings will conatine a comma (for example: $b = "hello_world,bye";)
Back to
Seekers of Perl Wisdom