Żeby wywołać operację wymagającą większej ilości argumentów: zaznaczamy za pomocą OP pushmark, że zaczyna się nowa ramka stosu, umieszczamy na stosie wszystkie argumenty zaczynając od pierwszego, wywołujemy odpowiednią operację (np. LISTOP print), lub umieszczamy na stosie adres funkcji do wywołania (PADOP gv GV *foo), po czym ją wywołujemy za pomocą UNOP entersub.
Przykład wywołania $x = "Hello, world!\n": COP nextstate SVOP const PV "Hello, world!\n" PADOP gvsv GV *x BINOP sassign
Przykład wywołania $x = -$y: PADOP gvsv GV *y UNOP negate PADOP gvsv GV *x BINOP sassign
Przykład wywołania $x = $y + $z: PADOP gvsv GV *y PADOP gvsv GV *z BINOP add PADOP gvsv GV *x BINOP sassign
Przykład wywołania print(1,2,3): OP pushmark SVOP const IV 1 SVOP const IV 2 SVOP const IV 3 LISTOP print
Przykład wywołania foo(1,2,3): COP nextstate OP pushmark SVOP const IV 1 SVOP const IV 2 SVOP const IV 3 PADOP gv GV *foo UNOP entersub
Operacje na zmiennych skalarnych Opcode PADOP gvsv umieszcza na stosie adres zmiennej. Opcode SVOP const umieszcza na stosie stałą.
Opcode BINOP sassign przypisuje zmiennej, odnośnik do której adres znajduje się na najwyższej pozycji stosu.