Ok, so you do not necessarily want to access your CAN device directly. Accessing CANoe would be sufficient for you. If you would have told that in your question earlier you could avoid a lot of confusion.
Accessing CANoe works via Win32::OLE, read the documentation of CANoe COM server and check the VB exampe to access environment variables.
I would create a CAPL node wich communicates with your perl script via CANoe environment variables. So if you click the button you would set an environment vaiable wich triggers the CAPL node to send a CAN message. That way you can even get data from CAN back to perl. It just depends on you interface design.
Show your solution and I'll comment it.