# Multiple initialization files

**URL:** <https://swi-prolog.discourse.group/t/multiple-initialization-files/5055>\
**Category:** General\
**Tags:** how-to\
**Created:** [February 24, 2022, 4:45pm UTC](https://swi-prolog.discourse.group/t/multiple-initialization-files/5055 "2022-02-24T16:45:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tdt](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@tdt](https://swi-prolog.discourse.group/u/tdt)\
**Post date:** [February 24, 2022, 4:45pm UTC](https://swi-prolog.discourse.group/t/multiple-initialization-files/5055/1 "2022-02-24T16:45:50Z")

</div>

I would like to have 2 initialization files:  
one for setting the print depth  
one for loading my utility routines

specifying multiple -f args did not seem to work.

---

<div class="post-metadata">

**Author:** ![abaljeu](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/abaljeu/32/136_2.png) [@abaljeu](https://swi-prolog.discourse.group/u/abaljeu)\
**Post date:** [February 24, 2022, 5:49pm UTC](https://swi-prolog.discourse.group/t/multiple-initialization-files/5055/2 "2022-02-24T17:49:31Z")

</div>

Write main\_init\_file.pl:

```prolog
:- [print_settings].
:- [utility_routines].

```

Create print\_settings.pl and utility\_routines.pl how you want them. Load all like

```
swipl -f main_init_file.pl
```

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [February 25, 2022, 10:21am UTC](https://swi-prolog.discourse.group/t/multiple-initialization-files/5055/3 "2022-02-25T10:21:49Z")

</div>

For local projects, note that the commandline is swipl file.pl … , i.e., you can give multiple Prolog files to start. So, e.g. you can use this to load your application with debug settings by writing a file debug.pl that holds the appropriate settings.

```
swipl debug.pl load.pl

```

Maybe we should add something that allows for using the search paths, so you can do e.g.

```
swipl library:lists.pl

```

As is, you can use `-g 'use_module(library(lists))'`, but that is not very friendly in scripts ☹
