W przypadku, gdy wykonanie któregoś plugina nie powiedzie się
(metoda execute
zwróci numer błędu inny od
$ERRNO{'OK'}
) AddUser-NG przerwie wykonywanie
kolejnych pluginów i zacznie uruchamiać metodę
rollback
dla wszystkich
wykonanych (włącznie z tym który zwrócił błąd). Jej zadaniem
jest cofnięcie wszystkich zmian jakie wprowadziła dana wtyczka.
Przykład 2.4. Szkielet metody rollback
sub rollback { my $self = shift; # ... code follows here :) return $ERRNO{'OK'}; }
W momencie wywołania metody rollback
przekazywany jest niejawnie argument będący referencją do
samej wtyczki, który zawiera całe jej API.
W obecnej wersji wartość zwracana przez tę metodę nie jest brana pod uwagę, ale może to ulec zmianie w kolejnych wersjach, dlatego zalecamy zwracać warotść informującą o powodzeniu (bądź też niepowodzeniu) wykonania.