in reply to termination of system command

This does not answer your question directly, but why reinvent a wheel here? vmstat will stop itself using it like vmstat delay count. Using the following vmstat will stop collecting after 10 iterations at 10 second intervals.
@val = `vmstat 10 10`;


update - system or IPC::Run3 may serve you better.

Ted
--
"That which we persist in doing becomes easier, not that the task itself has become easier, but that our ability to perform it has improved."
  --Ralph Waldo Emerson