# How to ask users ("readline()") to provide a range?

**URL:** https://discourse.julialang.org/t/how-to-ask-users-readline-to-provide-a-range/3924
**Category:** General Usage
**Tags:** question
**Created:** [May 25, 2017, 3:07pm UTC](https://discourse.julialang.org/t/how-to-ask-users-readline-to-provide-a-range/3924 "2017-05-25T15:07:43Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [May 25, 2017, 3:07pm UTC](https://discourse.julialang.org/t/how-to-ask-users-readline-to-provide-a-range/3924/1 "2017-05-25T15:07:43Z")

</div>

I need to ask users to provide a range, in the form of Start:Step:End, from command line…  
I tought to `parse(StepRange,readline(())`, but it doesn’t work:

```julia
print("Please specify a range in the form Start:Step:End (default to 20:1:25) ? ")
rawinput = readline()
rawinput = chomp(rawinput)
groups = []
if rawinput == ""
    groups = collect(20:1:25)
else
    groups = collect(parse(StepRange{Int64,Int64}, rawinput))
end
println(groups)

```

---

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [May 25, 2017, 3:13pm UTC](https://discourse.julialang.org/t/how-to-ask-users-readline-to-provide-a-range/3924/2 "2017-05-25T15:13:25Z")

</div>

got it…

```julia
print("Please specify a range in the form Start:Step:End (default to 20:1:25): ")
rawinput = readline()
rawinput = chomp(rawinput)
groups = []
if rawinput == ""
    groups = collect(20:1:25)
else
    groups= collect(eval(parse(rawinput)))
end
println(groups)

```

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [May 25, 2017, 3:40pm UTC](https://discourse.julialang.org/t/how-to-ask-users-readline-to-provide-a-range/3924/3 "2017-05-25T15:40:58Z")

</div>

`eval` feels unnecessary here. Can’t you just split on `:` and parse the left and right side as ints and then construct the range.

---

<div class="post-metadata">

### Author: ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)
#### Post date: [May 25, 2017, 7:40pm UTC](https://discourse.julialang.org/t/how-to-ask-users-readline-to-provide-a-range/3924/4 "2017-05-25T19:40:55Z")

</div>

Don’t ask them for input like this, just provide a function that they can call where they provide a range as the argument.

---

<div class="post-metadata">

### Author: ![tamasgal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamasgal/32/27946_2.png) [@tamasgal](https://discourse.julialang.org/u/tamasgal)
#### Post date: [May 25, 2017, 8:09pm UTC](https://discourse.julialang.org/t/how-to-ask-users-readline-to-provide-a-range/3924/5 "2017-05-25T20:09:23Z")

</div>

I also think splitting on `:` (like Kristoffer proposed) is the better option. Remember, eval can be evil on user input…
