use Rose::DB; Rose::DB->register_db ( domain => 'default', type => 'default', driver => 'Pg', ); $db = Rose::DB->new; $s = '{2,"four",6,8}'; $a = $db->parse_array($s); pop(@$a); $a->[2]++; $f = $db->format_array($a); # '{2,"four",7}' #### CREATE TABLE mywidgets ( id SERIAL NOT NULL PRIMARY KEY, name VARCHAR(255) NOT NULL, nums INT[] ); #### package MyWidget; use base 'Rose::DB::Object'; MyWidget->meta->table('mywidgets'); MyWidget->meta->columns ( id => { type => 'serial', not_null => 1, primary_key => 1 }, name => { type => 'varchar', length => 255, not_null => 1 }, nums => { type => 'array' }, ); MyWidget->meta->error_mode('fatal'); MyWidget->meta->initialize; 1; #### $n = MyWidget->new(name => 'Sprocket', nums => [ 2, 4, 6, 8 ]); $n->save; $n2 = MyWidget->new(id => $n->id); $n2->load; print $n2->nums->[1]; # 4