X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema.pm;h=cf054d0704eba8300fba6b2e76aff1071fcafe85;hb=5ba88f68163af041500139dcf154f6d276cbba68;hp=a65c0a9ba135e3903d2d741154663da8713ec1db;hpb=b1f9d92eb466f2624ecd5dc65f8c75eb726b49d6;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Schema.pm b/lib/DBIx/Class/Schema.pm index a65c0a9..cf054d0 100644 --- a/lib/DBIx/Class/Schema.pm +++ b/lib/DBIx/Class/Schema.pm @@ -707,26 +707,15 @@ wantarray context if you want the PKs automatically created. sub populate { my ($self, $name, $data) = @_; - my $rs = $self->resultset($name); - my @names = @{shift(@$data)}; - if(defined wantarray) { - my @created; - foreach my $item (@$data) { - my %create; - @create{@names} = @$item; - push(@created, $rs->create(\%create)); + if(my $rs = $self->resultset($name)) { + if(defined wantarray) { + return $rs->populate($data); + } else { + $rs->populate($data); } - return @created; - } - my @results_to_create; - foreach my $datum (@$data) { - my %result_to_create; - foreach my $index (0..$#names) { - $result_to_create{$names[$index]} = $$datum[$index]; - } - push @results_to_create, \%result_to_create; + } else { + $self->throw_exception("$name is not a resultset"); } - $rs->populate(\@results_to_create); } =head2 connection