将char添加到数组元素

时间:2012-12-20 08:58:12

标签: perl

有没有更简单的方法将char添加到perl中数组元素的开头和结尾。

Ex:my $str ='table1,table2,table3'

my @arry = split (/,/,$str)

我喜欢输出看起来像

'table1','table2','table3'

因此可以在sql查询中使用

感谢。

2 个答案:

答案 0 :(得分:9)

join(',', map "'$_'", @arry)

是你要求的。

但使用占位符要好得多:

my $str = 'table1,table2,table3';
my @arry = split(/,/, $str);
if (@arry) {
    my $query = 'select * from tablename where colname in (' . join(',',('?') x @arry) . ')';
    my $sth = $dbh->prepare($query);
    $sth->execute(@arry);
    ...
}

答案 1 :(得分:3)

如果您要使用DBI(https://metacpan.org/module/DBI)来处理数据库,如果您在查询中使用占位符,它可以为您执行此操作,这样您就不必引用值。

例如,如果要在表中插入内容:

    $dbh->do("INSERT INTO table VALUES(?, ?, ?)", undef, @arry) 
        or die $dbh->errstr;

其中@arry是一个数组,其中包含3个要插入表中的值。

有关详情,请访问https://metacpan.org/module/DBI#Placeholders-and-Bind-Values