Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Split string to arrayref? SQL::Abstract

by Anonymous Monk
on Nov 02, 2011 at 11:00 UTC ( #935351=perlquestion: print w/ replies, xml ) Need Help??
Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Im pretty new to all this. I'm using SQL::Abstract (1.71, not 1.72) to build some queries, using the general form "$where{$key} = $val;". I'm stuck on one part because the source for the queries sometimes has multiple where conditions seperated by a bar character like "FOO|BAR" which should result in sql in the form "..where x='FOO' or x='BAR'".

The SQL::Abstract notes say "To test against multiple values, just enclose the values in an arrayref", how can I split a string (on bar character) into an array ref?

Comment on Split string to arrayref? SQL::Abstract
Re: Split string to arrayref? SQL::Abstract
by moritz (Cardinal) on Nov 02, 2011 at 11:14 UTC
Re: Split string to arrayref? SQL::Abstract
by ww (Bishop) on Nov 02, 2011 at 12:02 UTC
    moritz is briefer (and direct creation of the ref is likely better) but this is tut form:
    #!/usr/bin/perl use Modern::Perl; # 935351 # how can I split a string (on bar character) into an array ref for us +e in SQL::Abstract? my $string = 'foo|bar|baz|bat'; my @array = split /\|/, $string; # 1 my $arrayref = \@array; # 2 spititout($arrayref); # 3 sub spititout { my $array_ref_in_sub = shift; # 4 my @workingarray = @$array_ref_in_sub; # 5 for $_(@workingarray) { # 6 say $_; } }

    Notes:

    1. break the string on VBARs and stuff the resulting elements to @array
    2. create a ref to @array
    3. call the sub
    4. get the ref to the original $array back from the arrayref passed to the sub
    5. dereference; put the data referenced (loosely, "pointed to") in the reference into an array with which we can work
    6. demonstrate that $array_ref_in_sub has what OP wants for SQL::Abstract

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://935351]
Approved by moritz
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2015-07-07 04:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (87 votes), past polls