---
name: "GitLab::API::v4::Paginator"
section: "3pm"
platform: "linux"
package: "libgitlab-api-v4-perl"
version: "0.27-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/GitLab::API::v4::Paginator"
---

# GitLab::API::v4::Paginator(3pm)

Iterate through paginated GitLab v4 API records.

## NAME

GitLab::API::v4::Paginator - Iterate through paginated GitLab v4 API records.

## DESCRIPTION

There should be no need to create objects of this type directly, instead use "paginator" in GitLab::API::v4 which simplifies things a bit.

## REQUIRED ARGUMENTS

### method

The name of the method subroutine to call on the "api" object to get records from.

This method must accept a hash ref of parameters as the last argument, adhere to the `"page"` and `"per_page"` parameters, and return an array ref.

### api

The GitLab::API::v4 object.

## OPTIONAL ARGUMENTS

### args

The arguments to use when calling the "method", the same arguments you would use when you call the method yourself on the "api" object, minus the `"\%params"` hash ref.

### params

The `"\%params"` hash ref argument.

## METHODS

### next\_page

```
    while (my $records = $paginator->next_page()) { ... }
```

Returns an array ref of records for the next page.

### next

```
    while (my $record = $paginator->next()) { ... }
```

Returns the next record in the current page.  If all records have been exhausted then "next\_page" will automatically be called. This way if you want to ignore pagination you can just call `"next"` over and over again to walk through all the records.

### all

```
    my $records = $paginator->all();
```

This is just an alias for calling "next\_page" over and over again to build an array ref of all records.

### reset

```
    $paginator->reset();
```

Reset the paginator back to its original state on the first page with no records retrieved yet.

## SUPPORT

See "SUPPORT" in GitLab::API::v4.

## AUTHORS

See "AUTHORS" in GitLab::API::v4.

## LICENSE

See "LICENSE" in GitLab::API::v4.
