use threads 'async'; sub A{ ... } sub B{ ... } sub C{ ... } async \&A; Win32::Sleep( millis ); async \&B; Win32::Sleep( millis ); async \&C; Win32::Sleep( millis );