Ż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.