Assuming new portgroup on the same vDS, this works for me. (let me know if this assumption is incorrect so I can look further into this...):
First identify your network adapter as $adpater and your new port group is $pg...Afterward:
my $dvsUUID = $adapter->backing->port->{'switchUuid'};
my $network = Vim::find_entity_views(view_type => "Network", properties => ['name'], );
foreach(@$network) { $pgKey = $_->{'mo_ref'}->{'value'} if ($pg eq $_->name);}
my $port = new DistributedVirtualSwitchPortConnection( portgroupKey=>$pgKey, switchUuid=>$dvsUUID,);
my $backing = new VirtualEthernetCardDistributedVirtualPortBackingInfo(port => $port);
$adapter->backing($backing);
my $devspec = VirtualDeviceConfigSpec->new(device => $adapter,operation => VirtualDeviceConfigSpecOperation->new('edit'));
my $pgChangespec = VirtualMachineConfigSpec->new(deviceChange => [ $devspec ] );
$vm_view->ReconfigVM(spec => $pgChangespec);