In order to the added node to get synced through to the NCM database you need to have an additional step:
$swis->Invoke('Cirrus.Nodes', 'AddNodeToNCM', [$nodeid]);
where $nodeid is the node id returned from the create step above.
see:SDK 1.5 invoke with Perl ?
** note **
you might need to get the sysobjectID for the node and fill it in correctly -- I have found that the NCM product never resyncs the sysObjectID after the node has been created, so if someone replaces your (say) HP switch with a Juniper switch NCM will try to use the HP methods
/RjL