---
name: "String::Dirify"
section: "3pm"
platform: "linux"
package: "libstring-dirify-perl"
version: "1.03-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/String::Dirify"
---

# String::Dirify(3pm)

Convert a string into a directory name

## NAME

String::Dirify - Convert a string into a directory name

## Synopsis

```
        use String::Dirify;
        my($dir_1) = String::Dirify -> dirify('frobnitz');
```

Or:

```
        use String::Dirify ':all';
        my($dir_2) = dirify('bar baz');
```

Or even:

```
        use String::Dirify;
        my($sd)    = String::Dirify -> new();
        my($dir_3) = $sd -> dirify('!Q@W#E$R%T^Y');
```

## Description

`"String::Dirify"` is a pure Perl module.

This module allows you to convert a string (possibly containing high ASCII characters, and even HTML) into another, lower-cased, string which can be used as a directory name.

For usage, see the Synopsis.

This code is derived from similar code in Movable Type.

## Method: dirify($string \[, $separator\])

Returns a string, which can be used as a directory name.

The default separator is '\_'.

Each run of spaces in the string is replaced by this separator.

## Algorithm

- 1: Each high ASCII character is replaced by its normal equivalent

  - 2: The string is converted to lower case

  - 3: Any HTML (including HTML entities) in the string is removed

  - 4: Any characters which are not (Perl) words, spaces or hyphens, are removed

  - 5: Runs of spaces are converted to the separator character

  For more details about this character, see the discussion of the **dirify()** method (above).

## Melody 'v' Movable Type

See http://openmelody.org for details.

## Backwards Compatibility with Movable Type

Unfortunately, the way Movable Type uses **dirify()** allows a fake separator - '1' - to be used for the second parameter in the call to **dirify()**.

The '1' triggered usage of '\_' as the separator, rather than the '1' provided.

This 'feature' has been preserved in `"String::Dirify"`, but is discouraged. Instead, simply drop the second parameter and let the code default to '\_'.

## Distributions

This module is available as a Unix-style distro (\*.tgz).

See http://savage.net.au/Perl-modules.html for details.

## REPOSITORY

\<https://github.com/ronsavage/String-Dirify\>

## Authors

`"String::Dirify"` started out as part of the Movable Type code.

Then, Mark Stosberg cut down the original code to provide just the English/ISO/ASCII features.

Lastly, the code was cleaned up, tests added, and all packaged, by Ron Savage *\<ron@savage.net.au\>* in 2009.

Homepage: http://savage.net.au/index.html

## Copyright

Copyright (c) 2009, Mark Stosberg, Ron Savage.

Copyright (c) 2010, 2011, Ron Savage.
