---
name: "CGI::FormBuilder::Util"
section: "3pm"
platform: "linux"
package: "perl-cgi-formbuilder"
version: "3.20-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/CGI::FormBuilder::Util"
---

# CGI::FormBuilder::Util(3pm)

Utility functions for FormBuilder

## NAME

CGI::FormBuilder::Util - Utility functions for FormBuilder

## SYNOPSIS

```
    use CGI::FormBuilder::Util;
    belch "Badness";
    puke "Egads";
    debug 2, "Debug message for level 2";
```

## DESCRIPTION

This module exports some common utility functions for **FormBuilder**. These functions are intended for internal use, however I must admit that, from time to time, I just import this module and use some of the routines directly (like `htmltag()` to generate HTML).

## USEFUL FUNCTIONS

These can be used directly and are somewhat useful. Don't tell anyone I said that, though.

### debug($level, $string)

This prints out the given string only if `$DEBUG` is greater than the `$level` specified. For example:

```
    $CGI::FormBuilder::Util::DEBUG = 1;
    debug 1, "this is printed";
    debug 2, "but not this one";
```

A newline is automatically included, so don't provide one of your own.

### belch($string)

A modified `"warn"` that prints out a better message with a newline added.

### puke($string)

A modified `"die"` that prints out a useful message.

### escapeurl($string)

Returns a properly escaped string suitable for including in URL params.

### escapehtml($string)

Returns an HTML-escaped string suitable for embedding in HTML tags.

### escapejs($string)

Returns a string suitable for including in JavaScript. Minimal processing.

### htmltag($name, %attr)

This generates an XHTML-compliant tag for the name `$name` based on the `%attr` specified. For example:

```
    my $table = htmltag('table', cellpadding => 1, border => 0);
```

No routines are provided to close tags; you must manually print a closing `"</table>"` tag.

### htmlattr($name, %attr)

This cleans any internal **FormBuilder** attributes from the specified tag. It is automatically called by `htmltag()`.

### toname($string)

This is responsible for the auto-naming functionality of **FormBuilder**. Since you know Perl, it's easiest to just show what it does:

```
    $name =~ s!\.\w+$!!;                # lose trailing ".suf"
    $name =~ s![^a-zA-Z0-9.-/]+! !g;    # strip non-alpha chars
    $name =~ s!\b(\w)!\u$1!g;           # convert _ to space/upper
```

This results in something like "cgi\_script.pl" becoming "Cgi Script".

### tovar($string)

Turns a string into a variable name. Basically just strips `"\W"`, and prefixes "fb\_" on the front of it.

### ismember($el, @array)

Returns true if `$el` is in `@array`

## USELESS FUNCTIONS

These are totally useless outside of **FormBuilder** internals.

### autodata($ref)

This dereferences `$ref` and returns the underlying data. For example:

```
    %hash  = autodata($hashref);
    @array = autodata($arrayref);
```

### arghash(@\_)

This returns a hash of options passed into a sub:

```
    sub field {
        my $self = shift;
        my %opt  = arghash(@_);
    }
```

It will return a hashref in scalar context.

### arglist(@\_)

This returns a list of args passed into a sub:

```
    sub value {
        my $self = shift;
        $self->{value} = arglist(@_);
```

It will return an arrayref in scalar context.

### indent($num)

A simple sub that returns 4 spaces x `$num`. Used to indent code.

### optalign(\\@opt)

This returns the options specified as an array of arrayrefs, which is what **FormBuilder** expects internally.

### optsort($sortref, @opt)

This sorts and returns the options based on `$sortref`. It expects `@opt` to be in the format returned by `optalign()`. The `$sortref` spec can be the string `"NAME"`, `"NUM"`, or a reference to a `&sub` which takes pairs of values to compare.

### optval($opt)

This takes one of the elements of `@opt` and returns it split up. Useless outside of **FormBuilder**.

### rearrange($ref, $name)

Rearranges arguments designed to be per-field from the global inheritor.

### basename

Returns the script name or `$0` hacked up to the first dir

## SEE ALSO

CGI::FormBuilder

## REVISION

`$Id:` Util.pm 100 2007-03-02 18:13:13Z nwiger $

## AUTHOR

Copyright (c) Nate Wiger \<http://nateware.com\>. All Rights Reserved.

This module is free software; you may copy this under the terms of the GNU General Public License, or the Artistic License, copies of which should have accompanied your Perl kit.
